主要观点:C 和 C++预处理器因宏可写晦涩难理解代码而被容忍,其虽有好处但也有弊端,PPstep 是宏作者用于调试的工具。
关键信息:
- 可可视化单步执行宏扩展和重新扫描直到预处理完成。
- 能在特定预处理事件上设置断点并继续预处理。
- 展示待处理宏扩展的回溯和未来宏重新扫描的前瞻。
- 可在预处理过程中定义/取消定义宏并随时展开宏。
- 待实现功能有反向步进和可视化条件编译分支。
重要细节: - 构建需
git clone
仓库、C++17 编译器、较新 Boost 并cmake
和make
。 - 试用时运行
ppstep your-source-file.c
,支持常见预处理器标志。 - 提示形如
pp>
,可用step
或s
命令前进,新宏调用等会有颜色标记,结束用quit
或q
命令。 - 可通过
backtrace
或bt
查看待处理宏扩展历史,forwardtrace
或ft
查看未来宏重新扫描。 - 可设置断点,如
break call YOUR_MACRO
等,删除断点语法类似。 - 可在预处理过程中使用预处理器指令,如
#define
等,还可用expand
命令展开宏。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。