1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【linux】Valgrind工具集详解(六):使用Valgrind gdbserver和GDB调试程序

【linux】Valgrind工具集详解(六):使用Valgrind gdbserver和GDB调试程序

时间:2024-04-30 08:09:25

相关推荐

【linux】Valgrind工具集详解(六):使用Valgrind gdbserver和GDB调试程序

一、概述

在Valgrind下运行的程序不是由CPU直接执行的。相反,它运行在Valgrind提供的合成CPU上。这就是调试器在Valgrind上运行时无法调试程序的原因。

二、快速入门

在使用Memcheck工具时使用GDB调试程序,启动方式如下:

1、valgrind --vgdb = yes --vgdb-error = 0 可执程序

2、在另一个shell中,启动GDB:gdb 可执程序

3、将以下命令提供给GDB:(gdb) target remote | vgdb

现在可以调试程序了,例如插入断点然后使用GDB continue 命令。

三、远程调试gdbserver

1、gdbserver的原理

本地调试:GNU GDB调试器通常用于调试在同一台机器上运行的进程。在此模式下,GDB使用系统调用来控制和查询正在调试的程序。

远程调试:GDB还可以调试在不同计算机上运行的进程。为此,GDB定义了一个协议(即一组查询和回复数据包),它有助于获取内存或寄存器的值,设置断点等.gdbserver是这种“GDB远程调试”协议的实现。要调试在远程计算机上运行的进程,必须在远程计算机端运行gdbserver

2、Valgrind中的gdbserver

Valgrind核心提供了一个内置的gdbserver实现,它使用–vgdb=yes 或–vgdb=full来激活。此gdbserver允许在Valgrind的合成CPU上运行的进程远程调试。GDB将协议查询数据包&

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。