-
Notifications
You must be signed in to change notification settings - Fork 77
LLVM输出Debug Log
Haojian Wu edited this page Dec 17, 2016
·
1 revision
我们在调试LLVM/Clang代码的时候, 很常用的方法是在程序代码某些环节,添加print
语句输出某些变量的过程以帮助我们定位问题. 当问题解决后,再把这些debug的语句删除, 再提交代码. 但是这个方法每次都得先添加print
语句, 到最后再删掉, 这样太麻烦了.
那么有没一种方法既能保留程序里的Debug信息, 然而又可以对程用户隐藏这些信息呢? 答案是当然有得, LLVM提供了DEBUG
宏和-debug
命令行参数来解决我们这个问题.
DEBUG
宏能够包含任意的执行语句, 通常用法是DEBUG(llvm::dbgs() << "This is debug message.")
. 里面的语句只在程序在被提供-debug
命令参数的时候执行, 也就是说我们要看Debug信息, 在启动程序时, 添加-debug
, 像clang -debug XXX
.
DEBUG
宏使用, 需要在使用的源文件中添加#define DEBUG_TYPE "my_tools"
. 另外有一点注意的是-debug
会输出程序中所有的Debug信息, 这里面会包含别人代码. 如果想只输出自己的感兴趣那一部分, 使用-debug-only=my_tools
.
官方更详细的文档: http://llvm.org/docs/ProgrammersManual.html#the-debug-macro-and-debug-option
LLVM/Clang
C/C++
- Get lower 32 bits from uint64
- How to unpack a std::tuple to a function with multiple arguments?
- {}-list Initialization
- Empty macro arguments
- 为什么能在函数中以by value方式返回unique_ptr?
- c++unsigned类型提升
- extern "C"
Linux
- ubuntu获取源码方法
- gcc/g++常用命令
- 浏览器导入安全证书
- ubuntu下宏包latex安装
- Bash Shell常用快捷键
- ubuntu把/tmp目录挂载到内存
- tar命令
- voyager12.04 apt-get install无法安装解决方法
- terminal shows git branch
- 编译GTK API源程序(附带pkg-config用法)
- ldconfig检查库是否存在
- Googletest Setup&Install
- Centos设置service开机自动启动
- CentOS create admin user
- 设置时区
- MySQL修改root密码
- MySQL常用命令
- Screen使用
- 环境变量
- Unity桌面环境的desktop文件
- zip和gzip文件区别
- Linux安全设置
Vim
- vim列编辑
- vim编辑二进制文件
- vim quickfix窗口
- Vim 批量操作
- Vim对多行重复操作
- mac下vim编译安装
- mac下vim taglist无效解决方法
- Vim 配置vim-airline
Tools
- gdb cgdb命令
- Source Insight添加.cc文件
- Source Insight快捷键
- GPT分区转MBR分区
- IRC工具Pidgin使用
- iTerm2 shortcuts
- MacOS shortcuts
- Compile/Run JUnitTest in Command Line
- Install Python2.7 on CentOS 6.4
- Install vmware tool on ubuntu server 12.04
- node-gyp Usage
- zsh中文乱码解决方法
- tmux快捷键
- 使用aria2突破百度云盘限速
- 配置 scheme编写环境
- How to list all available targets in ninja
Others
- CRLF换行符
- Git autocrlf设置
- Git reflog数据恢复命令
- how to migrate from SVN repo to Git repo
- Git submodule使用
- Git Pull强制更新
Chromium-Dev tips