- 
            
            gdb 调试命令。 list,n,p,bt,s,f查看全部
 - 
            
            jddc查看全部
 - 
            
            指针保存的就是内存地址查看全部
 - 
            
            产量名它只是一个代号 变量的本质是内存查看全部
 - 
            
            当前调用那个函数 当前调用的函数执行到多少行查看全部
 - 
            
            l 列出程序10行 回车 继续上一条命令 start 从main函数入口开始调试 n 继续执行下一行 s 进入函数内部执行 bt 查看函数堆宅 break n 在第n行加个断点查看全部
 - 
            
            指针查看全部
 - 
            
            1111查看全部
 - 
            
            gdb调试工具: bt 打印栈信息 f 标号 打印切换到某个栈中 p 变量名 打印变量值 start 启动程序 list 查看代码段信息 n 执行下一条命令 s 跟踪进入函数 x/个数 起始地址 数据类型查看全部
 - 
            
            栈保存的是函数当前运行时的状态查看全部
 - 
            
            gdb中<br> p * 0x7fffffffde14 意思是打印地址中的值 gdb: x/3d 0x7fffffffde14 连续打印3个整形地址下的值查看全部
 - 
            
            地址分配:代码,数据段是从下往上分配(先低地址,后高地址),栈是从上往下分配(先高地址,后低地址) 函数中静态变量,局部变量区别: 局部变量在栈(相对数据段而言的高地址)中,而静态变量在数据段(低地址)中. 所以在多次调用函数时,静态变量不会被重新,初始化. 或者这么说,静态变量的生存周期和数据段相同,局部变量生存时间受调用函数时,所属函数进栈出栈的影响而会重新初始化. 全局变量和静态变量都在数据段中,但静态变量是某个函数特有的.查看全部
 - 
            
            编译器优化代码,把声明时不在一起的同一类型变量,放到一起(某种程度上修改了源码) 如 声明 int a ; float b ; int c; 编译后变量a的地址和c的地址是连在一起的. 64位寻址下,指针占用8字节空间.查看全部
 - 
            
            内存分配图,从低地址到高地址:代码段,数据段,堆,自由分配,栈,系统内核查看全部
 - 
            
            gdb命令 p 打印 s进入函数 bt打印堆栈 l 查看源码 f 切换栈(加栈号) print step backtrace list查看全部
 
举报
0/150
	提交
		取消