2
我在Mac上,我使用的是鏗鏘聲++(別名爲g ++)。C++漂亮的堆棧跟蹤
我想在C++中打印類似Python的堆棧跟蹤。我打算使用框架和/或其他編譯器,但我需要它在Mac或Ubuntu上運行。
我已經簽出backtrace,但它看起來有點粗糙 - 我寧願不必計算字節數以找出堆棧跟蹤中每行的引用位置。另外,萬一它是相關的,我並不需要任何優化,所以如果它有幫助,我願意關閉優化。另外,如果我可以使用C++ 11功能(如果您建議使用不同的編譯器),我更喜歡它。
由於想什麼,我能夠做一個簡單的例子,最好我會跑
g++ MySource.cpp -o MyProgram <magic options>
MySource.cpp可能看起來像
#include "MyHeader.hpp"
int main() {
test();
}
MyHeader.hpp可能看起來像
#include <magic_print_stacktrace_library>
void test() {
magic_print_stacktrace_function();
}
而且如果我是跑./MyProgram
我想看到類似
File "MyHeader.hpp", line 4, in test
magic_print_stack_tracefunction();
File "MySource.cpp", line 4, in main
test();
「我寧願不必計算字節數以找出堆棧跟蹤中每一行的引用位置」 - 然而,由於該語言中沒有此類功能的標準化,因此您需要使用system-像這樣的特定接口。 :( – 2014-12-07 03:26:12