现使用LLVM的pass对源代码插入了一些检测逻辑,当检测到对特定变量的使用时会abort程序,如何对这个pass添加调试信息,使其可以在gdb时显示具体行号信息
时间: 2023-11-22 14:52:54 浏览: 154
给源程序添加行号
要在LLVM pass中添加调试信息,可以使用LLVM的调试API。具体来说,可以使用`llvm::dbgs()`函数来输出调试信息,该函数会将信息输出到标准错误流。另外,还可以使用`llvm::errs()`函数将信息输出到标准错误流。
为了在gdb时显示具体行号信息,需要在编译时开启调试信息的生成。可以通过在CMakeLists.txt中添加以下代码来开启调试信息的生成:
```
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
```
这样,在编译时就会生成调试信息。接下来,在gdb中运行程序时,可以使用`break`命令设置断点,然后在调试时会显示具体的行号信息。例如,可以使用以下命令在某个函数中设置断点:
```
(gdb) break file.cpp:10
```
这样,当程序执行到第10行时,gdb就会停下来。在停下来后,可以使用`list`命令查看当前断点附近的代码:
```
(gdb) list
```
这样就可以方便地进行调试了。
阅读全文