multithreading - 使用 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 开始模拟,因为它没有被连接。有人知道为什么会这样吗?
解决方案
推荐阅读
- iframe - 如何在 index.html 处显示 footer.html?
- flutter - 应用程序终止时如何打开对话框 - Flutter?
- javascript - Chart.js 厚标签被三个点替换
- sql - 使用 Oracle 合并语句合并组中的特定行
- amazon-web-services - Lambda 无权执行:dynamodb:GetItem
- javascript - React HOC 是纯函数吗?
- google-cloud-platform - 每当 GCP 存储桶被更新时,都会触发或通知 Angular
- airflow-scheduler - 循环触发 DAG
- javascript - 在 React.js APP 中,我发现了这个:TypeError: Cannot set property 'onclick' of null
- reactjs - React-Select:如何在加载选项时显示“正在加载...”