今天看了第四章,按照这个速度真是够呛能看完,还是要提高一下自己的效率啊。。
assert.h
利用assert.h调试,通过检测变量值来确定程序运行过程中的问题
c
#include <stdio.h> #include <assert.h> int main() { int x = -1; assert(x > 0); return 0; }
变量交换
c
#include <stdio.h> void swap(int *a, int *b) { int t = *a; *a = *b; *b = t; } void output(int a, int b) { printf("a: %d, b: %d\n", a, b); } int main() { int a = 1, b = 2; output(a, b); swap(&a,&b); output(a, b); return 0; }
使用gdb调试程序
- 编译选项
gcc temp.c -g
- 运行
gdb a.out
- 显示变量
p $
- 查看调用栈
bt
段错误和栈溢出
使用size
命令来查看执行文件中段大小
text data bss dec hex filename
13