添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

查看/修改core文件存放位置: echo "/corefile/core-%e-%p-%t" > core_pattern
修改core文件限制: ulimit -c unlimited
查看栈帧调用: bt full
显示局部变量: info locals
显示某个地址开始的信息: x/20wx 0xf73fa8

显示字符串:

(gdb) display *(char**)0xbefffdd8
4: *(char**)0xbefffdd8 = 0xbefffef1 "show"
(gdb) display **(char**)0xbefffdd8
5: **(char**)0xbefffdd8 = 115 's'

符号表中找代码 :arm-linux-addr2line -C -f -e 符号表 地址
导入可执行文件的符号表: symbol-file
导入动态库符号表: add-symbol-file 符号表 动态库加载地址
设置动态库的位置:set solib-absolute-prefix ./ (./相当于共享库的所搜路径前缀)
set solib-search-path 路径(设置共享库的搜索路径,可以设置多个)
有可能设置后会有如下问题:
./program/lib/libiconv.so.2': not in executable format: File truncated
/lib/librt.so.0': not in executable format: File format not recognized
这个时候,需要注意你的文件是不是一个链接文件,需要直接把源冬天库文件拿过来并换成链接的名字
使用场景:通过服务器调试core文件时,往往动态库加载不上,通过 info sharedlibrary可以查看,加载的是Yes,没加载的是No


查看某个结构体指针:
MyRec * RecPtr = new MyRec;
RecPtr->tt = strdup("hello world");
RecPtr->a  = 100;
方法:
print RecPtr
print *RecPtr
print RecPtr->tt
print RecPtr->a
查看调用栈:
frame N:切换到栈编号为N的上下文中
info frame:查看当前函数调用的栈帧信息
info命令的其他使用方式:

如果挂在库里

用info proc mapping找到库的地址,然后拿bt的地址和库的地址相减,然后用相减的值再addr2line看。

另外info sharelibrary的地址是干什么用的呢?

参考:https://www.cnblogs.com/shenghl/p/4442528.html 能够找到头文件,并且我已经把test.py拷贝到可执行文件的目录,但是一直提示cant open python file 。 原因是 linux 环境需要加两句话,不然Qt不知道到哪里找模块 PyRun_SimpleString(“import sys”); PyRun_SimpleString(“sys.path.append(’./’)”); PyObject* pModule = PyImport_Impor