使用gdb调试无法在函数名设置断点,请教大家。
在使用gdb调试的时候,在函数名设置断点:
b test_fun
提示没有这个函数,但是查看源代码是存在的。
举个有代码的例子:
调试的时候,能够在函数 a() 处加断点;单步执行到 第三行 的时候,会直接跳入函数 b() 的内部去执行;
按照常理,应该是显示 b() , 然后b的参数信息等等;但是奇怪的是会直接跳入函数b()内部。
请问有人遇到过这种情况吗?什么原因导致的?
谢谢大家!
b test_fun
提示没有这个函数,但是查看源代码是存在的。
举个有代码的例子:
int a(){
do something;
if ( b() == -1 ){
return -1;
}
}调试的时候,能够在函数 a() 处加断点;单步执行到 第三行 的时候,会直接跳入函数 b() 的内部去执行;
按照常理,应该是显示 b() , 然后b的参数信息等等;但是奇怪的是会直接跳入函数b()内部。
请问有人遇到过这种情况吗?什么原因导致的?
谢谢大家!
...全文
相关推荐
GDB调试core文件最常用的
- `gdb 程序名 core`:当有core文件时,这样启动GDB,可以对崩溃时的状态进行分析。2. **设置断点** - `b [linenum/func]`:在指定的行号或函数名处设置断点。
在X86环境下GDB调试使用方法
要使用 GDB,需要在编译时添加调试信息,以便在调试时可以查看函数名、变量名等信息。GDB 的主要功能包括启动程序、设置断点、检查程序状态和动态改变执行环境。
gdb调试-这些就够了.pdf
请注意,使用`-ggdb`可能使调试信息无法被其他调试器识别。在优化编译方面,`-O0`是最适合调试的选项,因为它不会改变代码结构,方便设置断点。
gdb调试程序
如输入l(list的简写)可以列出源代码:(gdb) l若要设置断点,可以使用break命令,后跟行号或函数名。
linux下的应用程序GDB调试方法
接着,启动GDB并加载程序:```hchen/test> gdb tst```在GDB中,可以使用`list`(或简写`l`)命令查看源代码:```(gdb) l```设置断点是调试的关键,可以通过行号或函数名进行设置


