学习调试Linux命令程序
前言
学习,dash即Debian系统中sh指向的系统程序,目标是学习vscode远程调试c程序的手法。
源码下载
根据p牛讲述的方法,可以在command-not-found找到命令对应的包,再在Ubuntu Packages中搜索包名得到对应包的下载地址,就可以下载到源码:
然后解压并用Vscode打开就可以开始阅读源码了。
环境搭建
启动虚拟机,准备好源码,首先允许autogen脚本,遇到问题:
1 |
|
似乎是由于没有安装automake导致的,安装一下:
1 |
|
再次运行,目录下生成了configure程序,然后准备编译安装一个用于调试的dash程序,类似编译用于调试的PHP,需要加上-g参数用于添加调试信息和prefix参数避免对系统原有环境造成影响:
1 |
|
最后编译安装生成命令程序dash:
1 |
|
简单测试一下:
接下来动态调试代码有两种选择,第一种是分离源码阅读和调试,在vscode里面看源码,在Linux里用gdb动态调试。第二种就是按照vscode拓展,直接在vscode里进行动态调试,如这篇文章所讲的ssh+gdb的调试方法。
首先需要在虚拟机中安装好sshd:
1 |
|
然后启动:
1 |
|
并且在主机powershell上测试一下ssh连接:
然后安装vscode的ssh扩展remote ssh:
装上去之后连接ssh,
可以通过配置SSH主机选项修改用户目录下的ssh文件,加上host和username的配置:
1 |
|
然后连接ssh,就可以直接打开远程主机上的源码文件夹了,然后在项目文件夹下面新建.vscode文件夹和launch.json文件,然后添加配置gdb launch:
随便下个断点,然后修改launch.json配置:
1 |
|
最后启动调试,调试环境搭建完成:
参考
学习调试Linux命令程序
http://yoursite.com/2023/10/24/学习调试Linux命令程序dash/