假設在類A的MA()方法中,在創建對象後調用類B的方法MB()。有沒有辦法在MB()中知道類的名稱以及它在C++中被調用的方法?有沒有辦法知道在C++中調用對象的方法的類的名稱?
2
A
回答
3
你在說什麼是Stack Trace。
堆棧跟蹤的定義:
堆棧跟蹤是一種有用的調試工具 ,你會通常需要 優勢,當一個例外 被扔的。它提供關於 當前線程的執行歷史的信息 ,在 之間顯示 這些類中的類和方法的名稱 ,這些類在發生異常時被調用。
這個SO問題"How can one grab a stack trace in C?"有你需要的答案。
1
一種更簡單和更通用的方法將是如下:
a)使輸出追查基於運行時間條件(例如,特定的環境變量)/調試開關
b)中登錄的條目,並每個函數的退出以及線程ID(以處理多線程應用程序)。爲此,請使用__FILE__ and __LINE__
預處理器指令。
c)使用一個良好的LogViewer應用(例如DebugView中在Windows)
相關問題
- 1. 有沒有辦法知道一個對象的C#方法是否被調用?
- 2. 有沒有辦法知道在Perl中的未知類的實例的方法
- 3. 有沒有辦法調用被覆蓋的對象的基類方法? (C++)
- 4. Objective C:有沒有辦法在沒有編譯器投訴的情況下調用類對象的類方法?
- 5. 在Groovy中,有沒有辦法知道持有閉包的變量的名稱?
- 6. 有沒有辦法知道調用方法?
- 7. 有沒有辦法在對象名稱中使用變量?
- 8. 有沒有辦法知道返回的對象是什麼?
- 9. 在Perl中:有沒有辦法知道列表中變量的名稱?
- 10. 有沒有什麼辦法從android應用程序中知道json對象中的鍵的名稱?
- 11. 有沒有辦法在不知道對象的結構的情況下從JSON組成匿名類型對象?
- 12. 有沒有辦法在Groovy中擁有可調用的對象?
- 13. 調用不同類的方法,但不知道對象的名稱
- 14. 對象*名稱*沒有方法*方法名稱*
- 15. 有沒有辦法在不通過相同名稱的子類方法的情況下在子類對象上調用超類的方法?
- 16. 有沒有辦法從被調用方法中的調用方法獲取參數的名稱?
- 17. 有沒有辦法從iOS中的CLLocation獲取街道名稱?
- 18. 有沒有辦法使用具有類名稱的字符串來調用類的靜態方法?
- 19. 有沒有辦法通過實例方法知道類名?紅寶石
- 20. 有沒有辦法只使用類的對象名稱作爲「默認」成員?
- 21. 有沒有辦法讓對象知道它被添加到DOM?
- 22. 有沒有辦法在eval中調用類方法?
- 23. 有沒有辦法找出導致在ruby中調用另一個方法的方法的名稱?
- 24. 有沒有辦法用C++類包裝Objective-C對象
- 25. 有什麼辦法可以知道調用者類名嗎?
- 26. 有沒有辦法在被調用者中獲得調用函數的名稱?
- 27. 有沒有辦法在Python中的類方法中修改類?
- 28. 有沒有辦法在java中使用類似於c#的引用(@「」)的方法
- 29. Javascript對象用方法返回「沒有方法」我的方法名稱「」錯誤
- 30. C++類的方法調用.cpp沒有::
1此分析日誌,但值得注意的是,C++不用於提供任何特徵或擔保有關堆棧檢查機制便攜式可用性 – 2010-08-23 01:25:49
@Tony:謝謝你的澄清。 – 2010-08-23 01:41:29
而且它可能僅僅在具有符號信息的構建中簡單地工作。如果它是一個沒有符號信息的發佈版本,它會花費更多的精力 – Chubsdad 2010-08-23 02:27:50