【1000个GDB技巧之】如何在远端服务器打开通过vscode动态观测Linux内核实战篇?

Step: 配置ssh的服务端host

(也可以直接在vscode中配置,忽略)
主要步骤:在~/.ssh/config中添加服务端的host,以便vscode的remote中能够登录
详细配置过程参考兄弟篇文章:ssh config如何配置用host名替代root@1.1.1.1

Step: vscode刷新远端服务器,并且点击打开

在这里插入图片描述
初次使用remote功能,需要在远端安装一个ssh的代理,需要耗费一定时间。

Step: 配置远端服务器安装C/C++的插件已支持debug功能在这里插入图片描述

Step: 测试插件可用性

添加一个调试配置文件launch.json
在这里插入图片描述

{
   
   
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
   
   
            "name": "C++ Launch (GDB)",
            "type":"cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/test/1",
            "args": ["args1", "args2"],
            "environment": [{
   
   "name": "config", "value": "value"}],
            "cwd"
### 使用VSCode远程调试Linux内核 为了实现通过Visual Studio Code (VSCode) 对Linux内核进行远程调试,需完成几个重要设置。这不仅涉及本地IDE的调整,也涉及到目标机器上的准备工作。 #### 安装必要的扩展 确保安装了Remote Development扩展包,该工具集支持多种类型的远程连接方式,包括SSH、容器以及Windows子系统中的Linux(WSL)[^1]。 #### 设置开发主机 在本地计算机上启动VSCode并利用Remote-SSH功能链接到运行着待调试内核的目标服务器。一旦建立了稳定的安全外壳协议会话,则可以如同操作本机项目一样管理远端文件系统内的资源。 #### 准备目标设备 于欲调试之操作系统实例中部署GDB server——GNU Debugger的服务端组件;此服务允许外部客户端接入并控制进程执行流程。对于内核级应用而言,可能还需要额外加载kgdb模块来增强调试能力。 #### 编译带有调试信息的内核版本 构建一个启用了KGDB选项(`CONFIG_KGDB`)的新版核心镜像,并确保编译过程中保留完整的符号表(-g flag),以便后续分析时能获取更详尽的信息。 #### 创建launch.json配置文件 定义一组JSON对象用于指导VSCode如何初始化一次新的调试环节。下面是一个适用于上述场景的例子: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Attach to kernel via kgdb", "type": "cppdbg", "request": "attach", "program": "/path/to/vmlinux", // 调试符号路径 "MIMode": "gdb", "miDebuggerPath":"/usr/bin/gdb", "setupCommands":[ {"description":"Enable pretty-printing","text":"-enable-pretty-printing"} ], "targetArchitecture":"x86_64", "pipeTransport":{ "pipeProgram":"/usr/bin/ssh", "pipeArgs":["root@your.target.machine"], "debugger Rosenfeld":"echo \"\\nset debug remote verbose on\" | nc -U /tmp/kgdb.sock" } } ] } ``` 这段代码片段展示了如何指定要附加至哪个可执行文件(这里指代的是vmlinux),并通过SSH隧道建立与远程GDB server之间的通信桥梁。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值