m0_64428000 2024-01-29 17:34 采纳率: 33.3%
浏览 6

vscode调试时,如何查看非用户代码

问题遇到的现象和发生背景

我想查看main函数之前发生了什么,main函数是怎样被调用的,在Visual Studio 中可以在堆栈窗口转到源代码,之后我想看看gcc编译下的main函数是怎么被调用的,我就利用vscode查看,但是堆栈窗口显示未知源,似乎只能转到汇编代码,请问怎么能转到源代码?

操作环境、软件版本等信息

vs2022,vscode1.8

尝试过的解决方法

配置launch.json,

"setupCommands": [
                   {
    "description": "为 gdb 启用整齐打印",
    "text": "-enable-pretty-printing",
    "ignoreFailures": true
                   },
                   {
    "description": "将反汇编风格设置为 Intel",
    "text": "-gdb-set disassembly-flavor intel",
    "ignoreFailures": true
                   },
                   {
    "description": "显示非用户代码",
    "text": "-interpreter-exec console \"set unwindonsignal on\"",
    "ignoreFailures": true
                   },
                    {
    "description": "Disable Just-In-Time Compilation",
    "text": "-interpreter-exec console \"set jit off\"",
    "ignoreFailures": true
                    }
               ]
我没有达到的结果

img

我想要达到的结果

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-29 17:34
    关注

    引自免费微信小程序:皆我百晓生

    对于查看非用户代码的问题,在VSCode中调试C++代码时,可以通过配置launch.json文件来实现。

    首先,需要在launch.json文件中添加"debugInfo" : "gdb"配置,以告诉VSCode使用GDB来进行调试。具体的配置如下:

    {
       "version": "0.2.0",
       "configurations": [
           {
               "name": "C++ Launch",
               "type": "cppdbg",
               "request": "launch",
               "program": "${workspaceFolder}/a.out",
               "cwd": "${workspaceFolder}",
               "environment": [],
               "externalConsole": false,
               "args": [],
               "MIMode": "gdb",
               "preLaunchTask": "build",
               "debugInfo" : "gdb"
           }
       ]
    }
    

    然后,在添加到"setupCommands"数组中的-interpreter-exec console命令后,添加以下命令来打开GDB的非用户代码显示:

    {
        "description": "显示非用户代码",
        "text": "-interpreter-exec console \"set print asm-demangle on\"",
        "ignoreFailures": true
    }
    

    通过以上配置,就可以在调试时查看非用户代码了。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月29日

悬赏问题

  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!