事情是这样的,运行一个程序,然后资源直接拉满,风扇呼呼的叫
然后去定位问题
采用gdb 断点调试,挨个 定位
如果想查看数组的所有元素
print *cnt@n n 是数组cnt 的长度
如果在死循环,就终止,然后
l
查看环境代码,推测 是一只调用的是哪一部份代码,然后再看是在哪里调用这部份代码,就能进一步缩小范围,知道最后确定
写到最后还是要规范编写
比如
int x;
while(x = max(m, n) > y)
如果 实际上的思想是
while((x = max(m, n)) > y)
而误写成 while(x = max(m, n) > y) 就可能会导致死循环了
因为 比较运算符的优先级是大于 赋值运算符的
后面还是会记录更多 gdb 调试经验的博客的
gdb coredump 调试
gdb program core(gdb + 可执行文件 +core文件)
查看位置
list (l)
查看位置
where