【问题标题】:Does relative path within the debug info depends on compiler or makefile?调试信息中的相对路径是否取决于编译器或生成文件?
【发布时间】:2012-12-22 03:43:11
【问题描述】:

任何人都知道调试信息中的相对路径取决于编译器或 makefile 吗?

我喜欢相关信息,因为我可以将我的项目放在任何地方;

但有时,由于路径不匹配,调试器无法找到源代码。

我不知道谁在调试信息中控制使用相对路径或绝对路径,也许是编译器,也许是makefile,也许两者兼而有之;

有人知道吗?

【问题讨论】:

    标签: debugging compiler-construction makefile relative-path


    【解决方案1】:

    您的问题有点模糊,但是...

    使用编译器和调试器,相对或绝对的选择由传递给编译器的路径决定。所以如果你想改变行为,你必须改变调用编译器的命令,这意味着改变makefile中的命令。

    【讨论】:

      【解决方案2】:

      有人知道吗?

      您没有在问题中提供足够的详细信息来准确地回答它

      Makefile 定义了你的 make 将执行的命令。

      • 如果你执行$(CC) -g -c foo.c -o foo.o,那么大多数编译器会 将相对路径foo.c 编码到目标文件中。一些编译器 还将对当前编译目录进行编码,因此调试器可以 即使您复制了二进制文件,也可以找到原始的 foo.c 在其他地方(Linux 上的gcc 会这样做,就像大多数其他人一样 使用DWARF 调试信息的编译器)。

      • 另一方面,如果Makefile 执行$(CC) -g -c /path/to/src-directory/foo.c -o /path/to/obj-dir/foo.o,那么大多数编译器会将完整路径编码到目标文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-22
        • 1970-01-01
        相关资源
        最近更新 更多