c语言 - GDB / "malloc_error_break"未定义



我正在尝试了解更多关于malloc&免费的,所以我创建了一个实现这些函数的dylib,并将其加载到一个公共系统二进制文件中。然而,它有错误,我正在尝试调试它们。

  • malloc.dylib是我的动态库

这是gdb的输出:

(gdb) set env DYLD_INSERT_LIBRARIES malloc.dylib
(gdb) break malloc_error_break
Function "malloc_error_break" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n 
(gdb) r
Starting program: /bin/ls 
[+] init()
[-] myMalloc requesting: 4096 bytes
[-] memory address: 200000
bash(2035) malloc: *** error for object 0x200000: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb) 

我困惑的是的信息

Function "malloc_error_break" not defined.

当我试图在它上面设置一个断点时。很明显,它并没有断开,因为它是未知的。

有什么帮助吗?提前谢谢。

不能在malloc_error_break上设置断点的原因是,此函数是在尚未加载的共享库中定义的。

您应该能够在运行程序一次之后设置断点。

或者,使用start而不是run,当程序在main上停止时,您应该然后能够在malloc_error_break上设置断点。

相关内容

  • 没有找到相关文章

最新更新