如何获取cc_test的完整cmd(带args和env)进行本地调试?

问题描述 投票:0回答:1

我有一个复杂的

cc_test
,其中有规则中指定的大量参数和环境:

cc_test(
  name="my_test",
  args=[...tons of args...],
  env= {...tons of envs...},
)

现在我想通过运行

./bazel-bin/my_test
来本地运行它,这样我就可以使用GDB来调试它。

问题是我需要复制并粘贴

args
env
手动形成规则,以获得完整的命令,例如:

ENV1=X ENV2=Y ./bazel-bin/my_test --args1=x --args2=y

这非常浪费时间。

有没有更快的方法来获取这个命令?或者还有其他更简单的方法来用 GDB 调试

cc_test
吗?

c++ gdb bazel bazel-cpp
1个回答
0
投票

要准确查看 bazel 执行的操作以及执行方式,您可以使用

--subcommands
https://bazel.build/docs/user-manual#subcommands

请注意,这还将打印为构建构建请求中的所有内容而执行的所有命令,因此可能有很多内容需要查看。但测试执行应该是最后一项。

还有

aquery
用于检查构建目标中的所有操作:https://bazel.build/query/aquery

还有

--run_under
https://bazel.build/docs/user-manual#run_under。从这个讨论中:https://github.com/bazelbuild/bazel/issues/2815你会使用
bazel run
而不是
bazel test
bazel run <test> --run_under='gdb --args'

© www.soinside.com 2019 - 2024. All rights reserved.