查看运行时数据

print-查看变量值

ptype–查看变量类型

#ptypei

#ptype“aaa”打印字符串”aaa”的类型

#ptypearray打印数组array的类型

#ptypemain打印main函数的类型

printarray–查看数组

#parr1

#parr1[2]查看数组arr2第三个元素值

#p&arr1[2]打印数组元素的地址

#p&arr1打印数组首地址,与p&arr1[0]作用类似

print*array@len–查看动态内存

#p*arr2@10

#p*arr2@15#将数组越界之后的内存也打印出来了

#p*arr@10#静态的数组也可以改方式打印

#parr[2]@2#从arr[2]开始的两个元素

#parr@2#打印两个数组

printx=5–动态改变运行时数据

#printi=1000

程序错误

编译错误:编写程序的时候没有符合语言规范导致编译错误【语法错误】。

运行时错误:编译器检查不出这种错误,但在运行的时候可能会导致程序崩溃【如:内存地址非法访问】。

逻辑错误:编译和运行都很顺利,但是执行结果不对

gdb调试逻辑错误

//示例-实现逆序输出字符串hello,但是却没有任何输出
#include <stdio.h>
int main(void)
{
int i;
char str[6] = "hello";
char reverse_str[6] = "";

printf("%s\n", str);
for (i=0; i<5; i++)
reverse_str[5-i] = str[i];
//Error:应该是reverse_str[4-i]...

printf("%s\n", reverse_str);
return 0;
}



gdb调试段错误

段错误是由于访问非法地址而产生的错误。

1、访问系统数据区,尤其是往系统保护的内存地址写数据。最常见就是给一个0地址指针赋值

2、内存越界(数组越界,变量类型不一致等)访问到不属于你的内存区域

//示例#include <stdio.h> #include <stdlib.h> void segfault1(){ int *p = NULL; *p = 100; } void segfault2() { char buf[1] = "a"; buf[13] = 'A'; printf("%c\n",buf[13]); } void segfault3(){ char buf[1] = "a"; buf[10] = 'A'; printf("%c\n",buf[10]); } int main() { segfault1(); //segfault2(); //segfault3(); return 0; } 

where命令orbt命令:栈回溯,显示导致段错误的执行函数树


wh命令查看程序代码窗口

core文件调试

1、core文件

在程序崩溃时,一般会生成一个文件叫core文件。core文件记录的是程序崩溃时的内存映像,并加入调试信息。core文件生成的过程叫做coredump

2、设置生成core文件

ulimit-c#查看core-dump状态

ulimit-c数字(如:ulimit-c1024)

ulimit-a#用于查看当前所有状态信息

将ulimit-cunlimited写入~/.bashrc,则默认会生成core文件

3、gdb利用core文件调试

gdb程序名[core-file]#如:gdbbuggingcore



更多相关文章

  1. Linux 2.6.x 内核模块加载错误 “Invalid module format” 解决
  2. 在用apt源安装mysql-server时出现如下错误,需要安装mysql-server-
  3. 存储过程放在sql脚本里,命令行导入总是提示错误
  4. 解决缺少sql头文件编译错误
  5. postgresql 数组 多了引号 空格处理
  6. “已有打开的与此命令相关联的 DataReader,必须首先将它关闭 ”错
  7. Mysql5.7.10版本安装后空密码登录,退出后提示密码错误连接不上解
  8. PostgreSQL无法加载库未知错误14001
  9. QT 使用QSqlQuery时候的 错误,。。。。

随机推荐

  1. 史上规模最大的中文知识图谱以及估值两个
  2. 用Python获取公众号阅读数、点赞数。
  3. 数据探索很麻烦?推荐一款史上最强大的特征
  4. 给Python初学者的最好练手项目,进来看就对
  5. 长点心吧年轻人,利率不是这么算的!我用Pyth
  6. 说说开源那些事儿
  7. 5 种方法教你用Python玩转histogram直方
  8. Android(安卓)/ OPhone开发系列教程正在
  9. 公众号正义与黑产对抗史
  10. 如何通过 Tampermonkey 快速查找 JavaScr