断点 b main.c:copy_process
取消断点 clear
调用链 bt
n,s,c,p,list
info r
layout next 切换到下一个布局模式
layout prev 切换到上一个布局模式
layout src 只显示源代码
layout asm 只显示汇编代码
layout split 显示源代码和汇编代码
layout regs 增加寄存器内容显示
调试启动
gdb --args ./xxx {args1…}
gdb时查看内存: x /10b addr
gdb: p /x a ; x /4b 0x7fffffdc ; x /12s key_ptr; p /c 8;
gdb多线程,锁定指定线程调试
info threads 查看当前活动线程
thread 1 切换线程
通过锁定调度器来命令GDB不要自行根据优先权改变当前线程
set scheduler-locking on
如果允许优先级高线程, set scheduler-locking off
确定当前模式:show scheduler -locking
文件依赖比如main.c依赖hello.c的hello方法
格式: gcc file1.c file2.c -o exec-file
gcc main.c hello.c -o main
gdb ./maiin 出现 No symbol table is loaded. Use the "file" command的问题
解决:编译时使用-g选项 gcc -g file1.c file2.c -o exec-file
编译hitos-linux0.11内核时用gcc版本为3.4
vim makefile
修改CFLAGS 改为-g o0
o0表示不开启优化
p/x 16-> 0x10 转为16进制
p gdt
gcc版本切换参考
下载gcc
1.加入源,方便更新。
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
2.更新
sudo apt-get update
3.安装
sudo apt-get install gcc-4.9
sudo apt-get install g+±4.9
查看gcc
ls /usr/bin/gcc
设置权重50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9* 50
配置gcc版本
sudo update-alternatives --config gcc