linux addr2line

最近遇到服务器宕机,由于ulimit -c 设置为0,没有产生core文件,查看 /var.log/messages

如图:

 之前曾在某个地方看到过add2line 函数,试验了一下,发现可以通过该函数定位到 具体的行数,简直就是救命稻草啊

执行命令 addr2line -e GameServer 00000000004f0273

如图:

  

成功搞定哈哈

  研究了下该命令的实现原理 :

  addr2line 会查看分析调试信息中的 line num table 找到出错行

最后,最后,一定要记住 可执行文件爱你必须包涵 调试信息 ,即  -g 方式编译

时间: 2024-10-06 00:03:24

linux addr2line的相关文章

Linux addr2line命令

一.简介 Addr2line (它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名.函数名和源代码行数的工具.这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了. 二.选项 Usage: addr2line [option(s)] [addr(s)] Convert addresses into line number/file name pairs. If no addresses are specified on the command

Linux编程基础

一.Linux编程环境 1. 程序编辑器: 命令模式: i(insert):插入 a(after):之后插入 x():删除字符 dd:删除一行 :行号进行指定 :/字符串:搜索字符串 :q,退去 :wq ndd:删除n行 yy:复制当前行 p:粘贴 ny:从当前航开始复制 2. gcc gcc -s  text.c gcc  -c text.c gcc -o text  text.c gcc -o text test1.o text2.o 二.调试工具 1. gdb 执行调试命令:gdb tes

linux下阅读源代码的工具

source insight 使用教程:http://wenku.baidu.com/link?url=AWmefe23g3AJRja3sGIky8rhmDELYXK9xQHGW137Cjk4qkItt5t8asR4XJqtMpY0GRsL8bnvljzeVRaxVNTzEDVdudmkJqltuWqq6z2Rla_On2mW8sx15bicICLxPwuDwqcUDZHuIq5o6eMdReo0bAzQK24ZYRYT-p0EdV7UaLu 说来真是惭愧呀.一直在用VIM 做开发.却不知道VI

gdb 和 addr2line 调试 crash(包含如何调试so里面的crash)

嵌入式编程中会遇到各种crash的问题. 对于这样的问题,有两种调试方法: addr2line  和 gdb. 第一章   先讲解下gcc 编译加不加 -g 对程序的影响, 还有strip. //1.1.cpp #include <iostream> using namespace std; bool IsUnique() {         int k = 0, m = 0;         k = k/m;      //这里会crash         return true; } in

Linux arm-linux交叉编译环境的配置

声明来自http://blog.csdn.net/lianyq1986/article/details/6651447 step:1.配置crosstool[[email protected] crosstool-ng-1.9.3]# ./configure --prefix=/opt/powerpc/install_dir/Checking for 'grep'... /bin/grepChecking whether '/bin/grep' supports -E... yesCheckin

在Linux使用mingw32来编写win32程序

MinGW - Minimalist GNU For Windows Mingw32 是 GNU 計畫工具的集合,包含了大量的標頭檔(header files).函式庫與指 令程式.目的在提供免費的工具以生產製作可於 Winodws 上直接執行而無須依賴輔助函式 庫的原生程式(Native Windows programs). 在 Debian 系統中,您可以安裝 DebianPackages:mingw32 .DebianPackages:mingw32-binutils 與 DebianPa

linux中的strip命令简介------给文件脱衣服

转载于:http://blog.csdn.net/stpeace/article/details/47090255 作为一名linux开发人员, 如果没有听说过strip命令, 那是很不应该的. strip这个单词, 大家应该早就学过了, 你就记住是脱衣服就行了, 别的不要多想. 在linux中, strip也有脱衣服的含义, 具体就是从特定文件中剥掉一些符号信息和调试信息. 我们来看main.c文件: [cpp] view plain copy print? #include <stdio.h

Linux内核调试方法总结之反汇编

Linux反汇编调试方法 Linux内核模块或者应用程序经常因为各种各样的原因而崩溃,一般情况下都会打印函数调用栈信息,那么,这种情况下,我们怎么去定位问题呢?本文档介绍了一种反汇编的方法辅助定位此类问题. 代码示例如下: #include <signal.h> #include <stdio.h> #include <stdlib.h> #include <execinfo.h> #include <fcntl.h> #include <

常见Linux/Unix开发辅助命令什锦

很多零碎命令集锦: 1. 怎样通过命令下载ftp文件 read -s -p "Your passwd: " Passwd; wget --user=YourUserName --password=$Passwd ftp://IP/dir/file read -s -p "Your passwd: " Passwd; axel ftp://yourUserName:[email protected]/dir/file 2. 怎样通过命令下载samba文件 smbcli