我碰到這個迷人的文章來到(Reddit上):Visualize function calls with Graphviz可視化功能與Graphviz的要求Windows程序
它說明了一個如何使用:GNU編譯器工具鏈中,Addr2line工具,定製了膠合代碼, Graphviz爲您的函數調用創建可視化。
我真的很想在我的代碼中實現這一點,除了問題是我的代碼是基於Windows的。我正在使用Microsoft C++編譯器。
的文章解釋瞭如何使用GCC提供的分析函數的入口和出口:
void __cyg_profile_func_enter(void *func_address, void *call_site)
__attribute__ ((no_instrument_function));
void __cyg_profile_func_exit (void *func_address, void *call_site)
__attribute__ ((no_instrument_function));
是否有微軟C++編譯器提供的入口和出口任何此類分析的功能呢? 這是第一個問題。
第二個問題是,我找不到任何Addr2line utility的Windows環境。基本上它會告訴你內存地址的文件名,函數名和行號。有沒有什麼辦法可以做到Addr2line的功能?