我得回溯在C++函數,並將其存儲到一個字符串,如下所示:在C++中使用backtrace()函數時出錯?
string myFunction()
{
void *array[5002];
// get void*'s for all entries on the stack
size_t size = backtrace(array, 5000);
char** trace = backtrace_symbols(array, size);
string stackTrace;
for(size_t index=0; index<size; ++index)
{
stackTrace += trace[index];
}
return stackTrace;
}
上面使用的代碼我收到內存故障。 回溯與上述錯誤的GDB是如下
??() from /lib64/libgcc_s.so.1
0x000000359be08934 in _Unwind_Backtrace() from /lib64/libgcc_s.so.1
0x00000035976e6358 in backtrace() from /lib64/libc.so.6
0x00002aaaab7afaec in (anonymous namespace)::myFunction() at fileName.cpp
任何sugestion解決呢? 感謝Advace。
是的,這應該有所幫助。 –
我試過使用上面的標誌,但我得到了同樣的錯誤。還有一件事是,在上面的問題中給出的錯誤只有在代碼被調試構建時,其他方式才能順利運行。 – BSalunke