- 生成可执行文件
- g++ -g 源代码.c -o 可执行文件名(自定义)
- 设定断点
- b 行数
Ctrl-X A 一般的可视化
Emacs+gdb这样的组合也可以
- 退出gdb—>>Ctrl+d
Ctrl+X+A
一个程序的调试记录
源代码如下:
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
/*
*/
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int num[256];
memset(num, 0, sizeof(num));
int start = 0, end = 0;
int len = s.length();
int ans = 0;
while (true) {
while (end < len && !num[s[end]]) {
num[s[end++]]++;
}
if (end - start > ans) {
ans = end - start;
}
if (end >= len) {
break;
}
while (num[s[end]]) {
num[s[start++]]--;
}
}
return ans;
}
};
int main(){
Solution s1;
string s("abcdabc");
cout<<s1.lengthOfLongestSubstring(s);
return 0;
}
设定断点
运行程序
查看运行时数据
跳入函数体内
display
vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb
- vimgdb的安装
- 打补丁,需要重新编译VIM,可以不随便玩我不?
- 当时是用apt-get 安装的VIM,所以需要查看它安装的具体情况
- 一般的deb包都在/usr/share
- 可运行程序一般在/usr/bin, 库在/usr/lib
- 源码一般也是装到/usr/local
- 查找命令find、whereis、locate
京山游侠,这道友写的蛮好的,值得借鉴。