使用gdb在linux命令行调试c++代码(1)

  • Post author:
  • Post category:linux




启动环境

gdb main



按行号打断点

break 7



按函数名打断点

break anyFunctionWithSourceCode



启动程序

run



带参数启动

run -c config.json



打印变量

print I_am_a_int



变量赋值

set I_am_a_int = 5



调用函数,打印返回值

print compute_sum(I_am_a_int , I_am_a_int)

如果报错

Cannot resolve function compute_sum to any overloaded instance

输入

set overload-resolution off

注意函数参数必须是已在内存里的变量

否则报错

Attempt to take address of value not located in memory



在特定文件打断点

break filename:codeline

如果是在动态库里,提示

Make breakpoint pending on future shared library load? (y or [n])

时选择y


后续介绍如何调试一个会崩溃的程序,通过查询堆栈定位崩溃点



版权声明:本文为qq_41011242原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。