2013-05-30 73 views
1

我正在實現一個跟蹤機制,它在輸入函數和退出時(當跟蹤對象被銷燬時)輸出一個日誌行。我希望輸出範圍退出的行號,但不知道如何完成此操作,因爲對象在退出時會被銷燬。顯然__LINE__在析構函數中將不起作用,因爲它只會輸出析構函數的行號。顯示行號對象被破壞

+1

範圍結束於函數的右大括號(除非您正在談論持續某個表達式的臨時對象)。你真的需要記錄嗎? – jrok

+0

@jrok我想我打算說打印行號*,導致*範圍退出,如通過返回語句。 – stgtscc

+0

我明白了。也許這個:'#define LOG_RETURN(x)return(std :: clog << __LINE__),(x);':) – jrok

回答

0

解決方案將轉儲堆棧跟蹤,它是如何完成平臺/編譯器依賴。對於Visual Studio,您可以使用DbgHelp庫,但打印堆棧跟蹤的完整代碼非常長。