如何获取cc_test完整命令(含参数与环境变量)进行本地调试?
解决Bazel cc_test调试时手动拼接环境变量和参数的问题
方法一:直接用Bazel启动GDB调试
- 用
bazel run配合--run_under参数,让Bazel自动注入规则里定义的所有env环境变量和args启动参数,直接拉起GDB:
执行后直接进入GDB调试界面,所有预设的参数和环境变量都会自动生效,完全不用手动拼接。bazel run --run_under="gdb --args" //path/to:my_test
方法二:生成带完整配置的执行脚本
- 先构建测试目标并生成runfiles:
bazel build //path/to:my_test --output_groups=runfiles - 构建完成后,在
bazel-bin对应目录下会生成一个包含完整环境和参数的包装脚本(路径类似bazel-bin/path/to/my_test.runfiles/__main__/my_test),可以直接用GDB调试这个脚本:gdb --args bazel-bin/path/to/my_test.runfiles/__main__/my_test - 也可以查看这个脚本的内容,直接获取拼接好的完整执行命令,方便后续复用。
内容的提问来源于stack exchange,提问作者Lixin Wei
相关产品推荐
相关产品推荐

