csapp bomb lab

Lab2 bomb GDB手册 Enscript Output (cmu.edu) 1 1.单步执行和跟踪函数调用 #include <stdio.h> int add_range(int low, int high) { int i, sum; for (i = low; i <= high; i++) sum = sum + i; return sum; } int main(void) { int result[100]; result[0] = add_range(1, 10); result[1] = add_range(1, 100); printf("result[0]=%d\nresult[1]=%d\n", result[0], result[1]); return 0; } result[0]=55 result[1]=5105 第二个有问题,因为sum未初始化,用的是第一次调用的寄存器 gcc -g main.c -o main gdb main -g选项的作用是在可执行文件中加入源代码的信息,比如可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件嵌入到可执行文件中,所以在调试时必须保证gdb能找到源文件。gdb提供一个类似Shell的命令行环境,上面的(gdb)就是提示符,在这个提示符下输入help可以查看命令的类别 看bomb.pdf chapter Ⅲ 3.2 程序编码 gcc -Og -o p p1....

November 3, 2021 · 4 min · 642 words · Me