首页 > 解决方案 > 使用 Visual Studio Code 调试 ZSim

问题描述

我正在尝试将 VSCode 调试器用于复杂的应用程序 zsim ( https://github.com/s5z/zsim )。GDB 可以正常工作,但我不知道如何设置 launch.json 以支持 VSCode 中的 zsim 调试。

zsim 是一个基于 intel PIN 的模拟器(https://software.intel.com/sites/landingpage/pintool/docs/81205/Pin/html/index.html#DEBUGGING)。正如文档所说,它有几种不同的调试方法。在 GDB 控制台中,我将“-pause_tool 5”附加到 PIN 命令以强制整个应用程序暂时停止并输出程序的 PID 和附加符号位置供您手动添加。在这五秒钟内,我必须启动 gdb,附加该 PID 并执行 PIN 提供的 add-symbol-file。

幸运的是,zsim 将 gdb 中的所有参数包装起来形成一个命令,如下所示:“gdb -p 15326 -ex set confirm off -ex add-symbol-file /build/debug/libzsim.so 0x7ffff5db17a0 -s .data 0x7ffff642ab80 -s .bss 0x7ffff642c540 -ex 处理 SIGTRAP nostop noprint -ex 在 -ex c 上设置确认。我尝试将我的 launch.json 修改为以下内容:

"request": "attach",
"processId": "15326",

这没用。当我选择正确的 PID 时,VSCode 会进入调试模式,但没有任何反应。然后在 5 秒后 ZSim 开始模拟,因为它没有被连接。有人知道为什么会这样吗?

标签: multithreadingvisual-studio-codegdb

解决方案


推荐阅读