2014-01-23 38 views

回答

5

Delphi 7編譯器不包含DCU中的文件名或行號。 (後來的版本使可通過RTTI的文件名,但它不存在於D7)

你可以使用一個異常處理包,如MadExcept(免費的非商業用途,並且定價爲商業版本相當),EurekaLog (商業,但我沒有成本信息),或者JclDebug單元(開源),它可以使用鏈接器映射文件中的調試信息和信息來提供異常返回的堆棧跟蹤。該堆棧跟蹤包括髮生異常的單元和行號(以及方法或過程名稱)。

+0

還有[EurekaLog](http://www.eurekalog.com/)。我已經使用了EurekaLod和madExcept。兩者都很好,但madExcept有更漂亮的窗口。 – GabrielF

+0

@GabrielF:我總是忘記尤里卡;我從來沒有用過它。我已經將它添加到答案中,所以它更容易看到(當然有適當的功勞)。謝謝。 :-) –

+0

@ Arioch'The:我沒有說「只有其中之一」;我說「如」並列出三個例子。問題本身的答案在第一段中;第二段是建議的做法,在Delphi 7中不支持,而不是唯一的方法。 –