-
gcc main.c -o main.out //直接生成的文件不可调试 gcc -g main.c -o main.out //加-g选项后生成的main.out就支持调试功能了,并且要使gdb能够找到源代码才可调试(两个条件缺一不可) gdb调试: gdb ./main.out l //列出当前项目的源代码 break 行号 //打断点 start //启动调试 p 变量 //查看变量在内存中的情况 n //执行下一条语句 s //进入函数内部 bt //查看函数堆栈(当前运行的函数,在栈顶) f 栈号 //切换栈 q //退出调试查看全部
-
A查看全部
-
int (*quadrate)(int a) 函数指针指代码段查看全部
-
在代码段,按先后加载顺序,先进的小,后进的大,相应代码段大小为它们的差值 global在数据段,使用同一地址 gcc 优化: 同一类型变量会放到一起 32bit指针4个字节*8bit,64位=8个字节*8查看全部
-
记录在栈内存中 调用函数和其运行到第几行 有哪些变量,变量的值 栈从上往下,从大的地址往小的放入查看全部
-
CPU用地址总线寻址,有多少地址总线,就有多少种状态,就能寻找和使用多大的内存 32bit CPU: 2^32 bit== 4GB 64bit CPU: 2^64 bit 64bit 中 前12个16进制位表示程序可使用的内存< 0xffffffffffff 其它的进制位直接给操作系统> 0xffffffffffff 程序使用的内存分为(低到高) 代码段---加载代码指令 数据段---全局变量 或 常量 const 数据和今代码段一般规划好了的 堆 动态可分配内存 栈 内核查看全部
-
gcc -g 生成可以使用gdb调试的目标代码 gdb 内命令 l 列出相关源代码,l继续 b(reak) 断点(当前行) start 单步调试 n 下一执行代码 p 打印变量 s 进入函数 bt 显示当前函数堆栈 f 切换堆栈查看全部
-
内存分配图查看全部
-
const和全局在数据段。查看全部
-
64位系统可以管理2^64的内存。查看全部
-
32 位的操作系统,32的CPU查看全部
-
32个地址总线。查看全部
-
两个地址总线。查看全部
-
一个地址总线。查看全部
-
练练手查看全部
举报
0/150
提交
取消