我在我的程序的退出程序中看到solaris中的核心转储。如何调试和修复这种核心转储?
(gdb) where
#0 0xff2cc0c0 in kill () from /usr/lib/libc.so.1
#1 0x0004dac0 in run_before_killed_handler (sig=11) at NdmpServer.cpp:1186
#2 signal handler called
#3 0xfee0ad50 in ?? ()
#4 0x00060a6c in proc_cleanup ()
#5 0xff2421ac in _exithandle () from /usr/lib/libc.so.1
#6 0xff2305d8 in exit () from /usr/lib/libc.so.1
#7 0x0003431c in _start ()
答案 0 :(得分:2)
您的程序显然使用atexit(3C)来注册退出处理程序。问题出现在那个处理程序中。
答案 1 :(得分:0)
在不知道Solaris内存布局的更精细细节的情况下,0xfee0ad50
似乎在操作系统方面。您在proc_cleanup
尝试(和失败)的操作系统调用是什么?