代码示例(foo.c)
int main(){
int *x=(int*)malloc(sizeof(int)); // break here
*x=10;
free(x);
return 0;
}
我想在malloc打破。这是我尝试的:
# gcc -g foo.c -o bar
# gdb bar
(gdb) b main
Breakpoint 1 at 0x80484cf: file src.c, line 7.
(gdb) r
Breakpoint 1, main () at src.c:7
(gdb) b malloc
Breakpoint 2 at 0x550944
(gdb) c
Program exited normally.
我的系统规格是:
请告诉我我哪里错了!!
答案 0 :(得分:4)
我无法可靠地重现错误,但在Linux上,您可以尝试在__libc_malloc
而不是malloc
进行分解。
答案 1 :(得分:0)
<强>解决强>
弄清楚了,
实际上断点是在ld-linux.so
而不是libc.so
中设置的,可以使用以下方法解决:
感谢您的关注!
虽然一个新问题是: 如何让gdb只在特定的库中设置断点(我知道它可以用于文件)!!