日志记录与调试#
在 Python 脚本中启用日志记录
导入 debug_mode 脚本
from interpret.develop import debug_mode
在您正在运行的脚本/测试中添加以下代码行,以使用本地库的调试版本启用日志记录
debug_mode(log_filename='log.txt', log_level='INFO', native_debug=True)
在上面的命令示例中,日志被发送到 log.txt 文件,并使用 INFO 日志级别
请注意,C++ 项目应在 DEBUG 模式下编译
stdout/stderr 也可以用作输出,例如
debug_mode(log_filename=stdout, log_level='INFO', native_debug=True)
请注意,默认情况下
pytest
会捕获发送到stdout
和stderr
的输出,因此在运行测试时您看不到它。如果您想查看输出,请在.vscode\settings.json
中添加以下参数
"python.testing.pytestArgs": [ "python", "-s" ],
如果您选择 Run Test 选项,您应该能在 Output Window –> Python Test Log 中看到日志
如果您选择 Debug Test 选项,您应该能在 DEBUG CONSOLE 中看到日志
在 VS Code 中调试 Python 和 C++
为 Python 和 C++ Attach 设置调试配置。例如,启动配置文件 (
launch.json
) 应包含"configurations": [ { "name": "(Windows) Attach", "type": "cppvsdbg", "request": "attach", "processId": "${command:pickProcess}" }, { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ]
对于
interpret
,我们需要确保ctypes
加载调试版本。一种方法是导入 debug_mode 脚本并在您正在运行的脚本/测试中使用它from interpret.develop import debug_mode debug_mode(log_filename='log.txt', log_level='INFO', native_debug=True)
确保 C++ 项目在 DEBUG 模式下编译
开始调试 Python 脚本 / 测试
启动 C++ Attach 并选择要附加到的 PID
确定要附加到的正确 PID 可能有点困难。一种方法是在您的 Python 脚本中添加以下 Python 代码以了解其 PID
print('Current PID = {}'.format(os.getpid()))
此时,Python 和 C++ Attach 调试器都应该在 VS Code 调试器工具栏中看到