【问题标题】:Is it possible to output paths to source files in Delphi debug map?是否可以在 Delphi 调试图中输出源文件的路径?
【发布时间】:2015-10-09 10:12:31
【问题描述】:

-GD Delphi 编译器开关允许输出详细的调试映射。这样的文件包含例如有关已编译到应用程序中的文件的信息。

Line numbers for UnitName(UnitName.pas) segment .text

    49 0001:001D27EC    50 0001:001D27F3    51 0001:001D27FC    52 0001:001D280A
    53 0001:001D2813    55 0001:001D2827    57 0001:001D2837    60 0001:001D283C
    ...

我想使用调试映射来分析应用程序依赖关系。目前我遇到了一个问题,单位名称相同但位于不同的文件夹中,例如

SomeSourceFolder/NotUniqueUnitName.pas
SomeThirdPartyFolder/NotUniqueUnitName.pas

为了确定调试映射中提到了哪个文件,我需要一个文件的绝对或相对路径。

有没有办法强制链接器输出源文件的路径?或者您能建议任何其他方法来获取此信息吗?

【问题讨论】:

    标签: delphi delphi-xe3 dcc32


    【解决方案1】:

    有没有办法强制链接器输出源文件的路径?

    没有。

    目前我遇到了一个问题,即单位名称相同但位于不同文件夹中。

    我不相信会是这样。除非我弄错了,否则 Delphi 不会链接两个具有相同名称的不同单元。

    但也许这不是问题所在。也许问题是您不知道正在链接哪个文件。我的建议是不要依赖搜索路径,而是包含项目中需要的所有文件。这样您就可以确定使用的是哪个文件。

    【讨论】:

    • “除非我错了,否则 Delphi 不会链接两个具有相同名称的不同单元。” Delphi 不会在同一个程序中链接这两个文件,这是正确的,但您仍然存在找出编译器使用哪个文件的问题。这取决于文件是否在 dpr/dproj 文件中列出,然后取决于搜索路径的顺序。为了让事情变得更复杂,还有库路径。 IIRC 库路径排在最后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2020-01-16
    • 2021-06-12
    • 2018-07-07
    相关资源
    最近更新 更多