bazel宏有哪些运行时调试/内省技术?

bazel宏有哪些运行时调试/内省技术?,bazel,Bazel,我发现将print语句添加到我的bazel宏和规则实现中会导致控制台输出添加到构建中,例如 DEBUG: /home/$USER/repo/source.bzl:82:5: message XYZ 我甚至可以用标准的python技术来反思一些对象,比如 def my_宏(my_列表): 打印(我的列表) 打印(类型(我的清单)) 打印(目录(我的列表)) 调试:/home/$USER/repo/source.bzl:83:5:[“//可见性:公共”] 调试:/home/$USER/repo/s

我发现将
print
语句添加到我的bazel宏和规则实现中会导致控制台输出添加到构建中,例如

DEBUG: /home/$USER/repo/source.bzl:82:5: message XYZ
我甚至可以用标准的python技术来反思一些对象,比如

def my_宏(my_列表):
打印(我的列表)
打印(类型(我的清单))
打印(目录(我的列表))
调试:/home/$USER/repo/source.bzl:83:5:[“//可见性:公共”]
调试:/home/$USER/repo/source.bzl:84:5:list
调试:/home/$USER/repo/source.bzl:85:5:[“追加”、“扩展”、“索引”、“插入”、“弹出”、“删除”]

是否有任何方法可以访问诸如在回溯模块中查看堆栈跟踪之类的内容?甚至像导入pdb和设置断点这样的事情

文档中有一个专门用于宏调试的lil部分

也可以使用“打印”进行调试

在明确指出print函数的地方,会提供一个方便的链接,将您重定向到globals函数

在那里可以看到
类型
目录
条目。没有看到任何面向堆栈跟踪的内容,只是一些用于探测当前调用堆栈上下文的技术