现在的位置: 首页 > 综合 > 正文

gdb调试

2013年01月04日 ⁄ 综合 ⁄ 共 1526字 ⁄ 字号 评论关闭

Linux下调试C/C++的最好的工具是GDB,

 

GDB是命令行的调试工具,GDB常用的命令如下:

举例:

1.新建一个文件C++源代码的文件swap.cpp,源代码如下:

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. void swap(int &a, int &b);  
  5. int main()  
  6. {  
  7.     int i, j;  
  8.     cout << "Input two int number:" << endl;  
  9.     cin >> i >> j;  
  10.   
  11.     cout << "Before invoke swap(), i = " << i << ", j = " << j << endl;  
  12.     swap(i, j);  
  13.     cout << "After invoke swap(), i = " << i << ", j = " << j << endl;  
  14.   
  15.     return 0;  
  16. }  
  17.   
  18. void swap(int &a, int &b)  
  19. {  
  20.     a = a ^ b;  
  21.     b = a ^ b;  
  22.     a = a ^ b;  
  23. }  


2.执行如下命令,生成带调试信息的可执行文件,并执行生成的文件,如下:

注意:为了能使用GDB工具来调试程序,在用g++来编译程序时,一定要加入-g选项,该选项用来加入调试信息的。

 

3. 启动GDB,并通过file命令加入要调试的swap程序,如下图:

4.查看源代码,如下:

 

5.GDB中设置断点和查看断点

 

6.gdb常用调试命令,如下图:

 

 来自:http://blog.csdn.net/wfdtxz/article/details/7368357

Linux下调试C/C++的最好的工具是GDB,

 

GDB是命令行的调试工具,GDB常用的命令如下:

举例:

1.新建一个文件C++源代码的文件swap.cpp,源代码如下:

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. void swap(int &a, int &b);  
  5. int main()  
  6. {  
  7.     int i, j;  
  8.     cout << "Input two int number:" << endl;  
  9.     cin >> i >> j;  
  10.   
  11.     cout << "Before invoke swap(), i = " << i << ", j = " << j << endl;  
  12.     swap(i, j);  
  13.     cout << "After invoke swap(), i = " << i << ", j = " << j << endl;  
  14.   
  15.     return 0;  
  16. }  
  17.   
  18. void swap(int &a, int &b)  
  19. {  
  20.     a = a ^ b;  
  21.     b = a ^ b;  
  22.     a = a ^ b;  
  23. }  


2.执行如下命令,生成带调试信息的可执行文件,并执行生成的文件,如下:

注意:为了能使用GDB工具来调试程序,在用g++来编译程序时,一定要加入-g选项,该选项用来加入调试信息的。

 

3. 启动GDB,并通过file命令加入要调试的swap程序,如下图:

4.查看源代码,如下:

 

5.GDB中设置断点和查看断点

 

6.gdb常用调试命令,如下图:

 

 来自:http://blog.csdn.net/wfdtxz/article/details/7368357

抱歉!评论已关闭.