请教GDB的使用问题
我在开发一个大程序时,遇到一个问题,程序有时会退出。使用GDB运行这个程序时,程序退出后GDB看不到任何状态(报告说找不到进程,捕获得到通用寄存器)。我不知道怎么用core dump功能来对付这种情况,请大侠指教!
用printf打印跟踪,发现程序退出是因为有一个函数会被反复调用,而这个函数整个用mutex做成原子操作。程序退出是因为某次调用进入这个函数后,没有正常退出这个函数(函数入口和出口都有printf打印状态)。可能是因为内存操作越界或者指针指向非法内存区域等原因。因为不知道函数调用出错导致程序退出的原因,所以无法使用条件断点查看。
请教各位大侠,我这种情况应该怎么定位问题原因?用GDB可以吗?