使用GDB调试带参数程序

在Linux的命令行环境下,使用GDB调试程序较为方便,调试简单程序可以直接使用 gdb my-program-to-debug的方式进行,调试带参数的程序,可以使用以下方式:

gdb my-program-to-debug

然后会进入GDB的交互模式,在该模式下,输入所需参数:

r args1 args2 args3 ....

回车之后即可执行。

对于Linux中包含多个版本的Python,而使用的Python不是系统默认版本的Python时,会出现以下错误:

gdb: symbol lookup error: gdb: undefined symbol: PyUnicodeUCS4_FromEncodedObject

这个时候,只要在启动gdb时在路径中增加系统指定的Python路径即可,如下:

LD_PRELOAD=/usr/lib/libpython2.7.so gdb -ex 'set environ LD_PRELOAD' --args my-program-to-debug