首页 > 数据库技术 > 详细

gdb 解core

时间:2021-04-28 21:55:27      阅读:30      评论:0      收藏:0      [点我收藏+]

1.查看core文件:/opt/compiler/gcc-4.8.2/bin/gdb bin/mixer /home/coresave/bak/core文件

2.查看堆栈信息:bt

3.红框表示堆栈的帧frame,定位到是哪个帧出问题就直接跳到该帧:f num(前面的数字)

4.查看所有线程:info(i) threads

5.找到对应的线程id后,利用thread <num>切换到该线程

6.打印出当前函数的参数名及其值:info args

7.打印出当前函数中所有局部变量及其值:info locals

8.查看当前函数的异常处理信息:info catch

9.查看源代码在内存中的地址:info line后面可以跟“行号”,“函数名”,“文件名:行号”,“文件名:函数名”,这个命令会打印出所指定的源码在运行时的内存地址:info line tst.c:func 

10.查看函数func的汇编代码:disassemble func

11.看当前程序的运行数据:p(or print) 变量名(p/x是让其以十六进制的格式输出)

  • x 按十六进制格式显示变量。 
  • d 按十进制格式显示变量。 
  • u 按十六进制格式显示无符号整型。 
  • o 按八进制格式显示变量。 
  • t 按二进制格式显示变量。 
  • a 按十六进制格式显示变量。 
  • c 按字符格式显示变量。 
  • f 按浮点数格式显示变量。 

12.gdb支持以下操作符

  • 是一个和数组有关的操作符。 

        “@”的左边是第一个内存的地址的值,“@”的右边则你你想查看内存的长度。

         例如:*array@len

  • :: 指定一个在文件或是一个函数中的变量。 
  • {} 表示一个指向内存地址的类型为type的一个对象。 

13.栈向上or向下n层:up n、down n

 

gdb 解core

原文:https://www.cnblogs.com/rainisraining/p/14715533.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!