使用gdb进行程序调试时,如何将标准输入传给可执行程序?
假设数据在input.txt当中, 可执行文件名为myprogram。
$ cat input.txt
this is a test.
$ gdb myprogram // 启动调试
(gdb) break // 设置断点
run arg1 arg2 ... < input.txt // 传入参数,以及输入数据
n or s //单步调试,n不进入函数,s进入函数
p variable_name //打印变量值
c // 执行至下一断点
使用gdb进行程序调试时,为何变量显示<value optimized out>?
这是因为在编译程序时,设置了-O1, -O2, -O3,应该改为-O0,则变量值可以正常显示。
如果使用cmake来自动生成Makefile,如何加入调试信息?
设置选项-DCMAKE_BUILD_TYPE=Debug
gdb断点设置?
1. break file_path/file_name:line_number
2. break file_path/file_name: function_name
转载于:https://blog.51cto.com/11190017/1760013