我正在开发 LLVM IR 的前端,并希望附加调试信息。我已经使 %llvm.dbg.declare 有效,它可以在此声明后跟踪我的变量。但我不明白另一个 %llvm.dbg.value 的用途,谁能告诉我应该在什么情况下使用它?或任何例子?
llvm.dbg.declare
如果您在没有优化的情况下构建代码(您确实应该这样做)就足够了。在未优化的代码中,局部变量位于堆栈上(在alloca
s 中)并llvm.dbg.declare
告诉调试器在哪里可以找到它们
当尝试调试优化代码时,事情变得更加模糊,因为本地变量可以在寄存器中,并且没有实际的“内存位置”调试器可以检查以始终知道本地变量的值。这就是llvm.dbg.value
进来的地方 - 它可以明确通知调试器本地已更改及其新值。
归档时间: |
|
查看次数: |
1420 次 |
最近记录: |