2010-08-23 59 views

回答

3

你在說什麼是Stack Trace

堆棧跟蹤的定義:

堆棧跟蹤是一種有用的調試工具 ,你會通常需要 優勢,當一個例外 被扔的。它提供關於 當前線程的執行歷史的信息 ,在 之間顯示 這些類中的類和方法的名稱 ,這些類在發生異常時被調用。

這個SO問題"How can one grab a stack trace in C?"有你需要的答案。

+1

1此分析日誌,但值得注意的是,C++不用於提供任何特徵或擔保有關堆棧檢查機制便攜式可用性 – 2010-08-23 01:25:49

+0

@Tony:謝謝你的澄清。 – 2010-08-23 01:41:29

+0

而且它可能僅僅在具有符號信息的構建中簡單地工作。如果它是一個沒有符號信息的發佈版本,它會花費更多的精力 – Chubsdad 2010-08-23 02:27:50

1

一種更簡單和更通用的方法將是如下:

a)使輸出追查基於運行時間條件(例如,特定的環境變量)/調試開關

b)中登錄的條目,並每個函數的退出以及線程ID(以處理多線程應用程序)。爲此,請使用__FILE__ and __LINE__預處理器指令。

c)使用一個良好的LogViewer應用(例如DebugView中在Windows)

相關問題