gpt4 book ai didi

debugging - 为什么调试符号在LLVM编译/链接过程中丢失?

转载 作者:行者123 更新时间:2023-12-04 08:53:43 24 4
gpt4 key购买 nike

我编写了一个LLVM转换,该转换基本上用 protected malloc和其他一些东西替换了malloc。

我正在使用clang(或llvm-gcc)编译c文件以获取包含调试信息的位代码文件(使用-emit-llvm选项)。这些还包含方法名称,行号等。

之后,我将使用opt来检测此位码文件。结果是一个经过检测的位代码文件,仍然包含所有相关的调试信息。

在第三步(也是最后一步)中,由于我们需要一些运行时库,因此我们将使用llvm-gcc将位代码链接到其他一些位代码文件,以获取最终的二进制文件。

我无法调试该二进制文件,因为尽管所有链接的位代码文件都包含调试信息,但它不包含任何调试信息。 gdb唯一可以告诉我的是我们在哪个函数中,但是没有行号等等。

我将不胜感激。

最佳答案

据我了解,您正在运行优化(opt工具也可以优化代码并调试信息)。因此,当调试是优化的调试信息的结果时,您想看到的缺失部分可能是吗?

P.S.
我会在评论中添加此名称,但不幸的是,我没有50条添加评论所需的声誉。

关于debugging - 为什么调试符号在LLVM编译/链接过程中丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2351764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com