我正在尝试分析我的应用程序。为此,我使用 -pg 和 -lc_p 选项编译了我的代码,它编译成功
在运行时,我收到以下错误。在free()中:错误:垃圾指针,太高而无法理解分段错误:11(核心转储)
做 GDB 会出错。
(gdb) b main
Breakpoint 1 at 0x5124d4:
(gdb) r
warning: Unable to get location for thread creation breakpoint: generic error
[New LWP 100085]
cacheIp in free(): error: junk pointer, too high to make sense
Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 100085]
0x00000000006c3a1f in pthread_sigmask ()
我的应用程序是多线程的,是 C 和 C++ 代码的组合。
uname -a
FreeBSD 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Wed Jan 16 01:43:02 UTC 2008 root@palmer.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP amd64
如果没有 -pg 选项,代码可以正常工作。为什么代码与 -pg 一起崩溃。我是不是错过了什么。