我想用C++寫的一些庫代碼進行修補。一個相當複雜的應用程序位於庫的頂部。爲了修補代碼,我經常需要了解在整個代碼庫中如何使用庫函數,並確保我不會破壞任何下游客戶端。生成所有可能的呼叫樹堆
假設foo()
從我的媒體庫的DLL導出。在客戶端代碼中,bar()
調用foo()
和baz()
調用bar()
。我需要確保bar
和baz
都可以在我的更改後生效。在我的情況下,調用堆棧實際上很深,並且不容易手動跟蹤,因爲沒有一個調用堆棧,我的庫函數可以在調用堆棧的頂部登陸很多方法。
使用Visual Studio或g ++或clang,有沒有一種方法可以生成一個樹,使得我的庫函數位於根,而分支是我函數可以放置在頂部的所有各種方式調用堆棧?我的意思是這種功能已經存在於其中一種流行的工具鏈中嗎?如果沒有,你知道有其他方式來生成這樣一棵樹嗎?