本文使用Ubuntu20.04
一、可视化前端 Kdbg
- 安装Kdbg过程
git clone -b maint https://github.com/j6t/kdbg.git
当git clone使用不了
解决语句:
sudo apt install git
解决语句:
sudo apt-get install update
解决方法:
sudo nano /etc/resolv.conf
修改DNS
nameserver 8.8.8.8
nameserver 8.8.4.4
sudo etc/init.d/networking restart
然后重新执行(不出意外,安装会成功)
sudo apt-get install update
sudo apt-get install git
git clone -b maint https://github.com/j6t/kdbg.git
进入kdbg目录下
cmake .
cmake不成功,通过查看CMakeList.txt内容,发现应该是缺少一个QT程序和一个KF5
安装QT程序始终不成功,发现是虚拟机的磁盘空间不够,已经放不了QT程序,所以后面就换了一个虚拟机,前面操作一样。
下载QT安装文件
下载完成后在终端中切换到文件放置目录,增加可执行权限,输入
chmod +x qt-opensource-linux-x64-5.9.0.run
然后就是双击这个文件进行安装,安装过程如下
安装界面,选择Next
内容可以不填,直接点击Skip
安装位置的选择
默认的QT5.9是没有打勾的,尽量打上勾
选择同意这个协议后,点击Next
点击Install,开始安装(安装过程时间会比较久)
KF5相关库的安装命令
sudo apt install extra-cmake-modules qtbase5-dev libx11-dev libkf5crash-dev libkf5kio-dev libkf5solid-dev libkf5jobwidgets-dev libkf5textwidgets-dev libkf5bookmarks-dev libkf5xmlgui-dev libkf5itemviews-dev libkf5attica-dev libkf5sonnet-dev libkf5globalaccel-dev libkf5guiaddons-dev libkf5codecs-dev libkf5auth-dev libkf5dbusaddons-dev libkf5coreaddons-dev libkf5iconthemes-dev libkf5configwidgets-dev libkf5widgetsaddons-dev libkf5service-dev libkf5config-dev libkf5windowsystem-dev libqt5concurrent5 libpulse-dev libqt5x11extras5 libqt5x11extras5-dev
接下来,进入kdbg目录下,执行下面命令
cmake .
sudo make install
安装就完成了
- 使用KDBG
首先进入kdbg目录下,使用ls命令查看是否存在kdbg的可执行文件。如果前面安装没有问题的话,一定会有kdbg的可执行文件,接着执行该可执行文件。
执行后,效果如下
将需要调试的代码加载进来,进行设置,就可以进行调试。
二、基于跨平台多类型代码编辑器VScode
- 安装VScode
官网下载地址:
https://code.visualstudio.com/Download
解压
sudo dpkg -i code_1.51.0-1604600753_amd64.deb
在Ubuntu的应用区域可以找到VScode就表示安装完成。
- 安装C++插件
打开VScode,安装图中进行操作
- 使用VScode
使用终端命令新建一个文件夹,在VScode中打开该文件夹,然后,在VScode新建一个文件,并输入代码
获取lanch.json文件,会得到默认生成的json文件
修改后的lanch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
修改的内容
将program的内容改为调试运行的程序,enternalConsole的内容改为true
获取task.json文件,会生成自动的task.json文件
修改后的task.json文件
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-std=c++11",
"-o",
"${fileBasenameNoExtension}.out"
]
}
]
}
使用ctrl+shift+B来调出命令,进行Build
在设置好断点后,开始调试
三、总结
通过对这两种可视化的方式对程序进行调试的过程中,基本掌握该如何使用这两种方式进行调试。在安装过程中,还是遇到比较多的问题,还好在最后都解决了。在使用VScode进行调试的过程,最大的问题是怎么配置lanch.json和task.json文件,只要这两个文件配置好了,后面的操作就比较简单了。