[英]Cannot set breakpoint at malloc()
代码示例(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.
我的系统规格是:
请告诉我我要去哪里错了!
我无法可靠地重现该错误,但是在Linux上,您可以尝试在__libc_malloc
而不是malloc
处__libc_malloc
。
解决
弄清楚了,实际上是在ld-linux.so
中设置了断点而不是libc.so
,可以使用以下方法解决该问题:
感谢您的关注!!
尽管会有一个新问题:如何要求gdb仅在特定库中设置断点(我知道可以为文件完成此操作)!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.