dump文件字符串内容搜索

原创 2017年01月02日 22:24:53

当我们的进程发生了coredump,而我们想看一下core文件中是否包含某字符串,应该怎么做呢?

 

举个简单的例子:

 

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

int main()
{
    char *testStr = "test_info";
    while(1)
    {
        char *verifyStr = (char*)malloc(sizeof(testStr));
        strncpy(verifyStr,testStr,strlen(testStr));
        free(verifyStr);
    }
    return 0;
}

 

如上代码中,会在全局变量区保存字符串test_info,也会在堆上申请内存,保存test_info,只不过每次存储后内存地址又被释放了。

 

如上代码对应的进程如果coredump了,那dump文件中一定是存在test_info的字符串内容的。

 

下面我们就介绍几种看dump文件中是否包含某一个字符串的方法。并能看到字符串对应的位置的上下文信息。

 

首先,我们把上面代码放到某一linux机器上,gcc -o dumpTest dumpTest.c编译一下,生成可执行文件。Chmod a+x dumpTest给该文件赋予可执行权限。./dumpTest执行程序。

最后使用gcore生成该进程的dump文件。

 

 




 

gcore的格式

 

   gcore -o filename PID

 

1、使用find命令

  

    

 

使用find ./ -type f -name dumpTest_core_23782.23782|xargs grep "test_info"命令查找文件中是否包含”test_info”字段内容。

 

2、使用objdump命令

 

   

 

如上截图,使用objdump -s dumpTest_core_23782.23782|grep "test_info"命令查找dump文件中是否包含”test_info”字符串,以及字符串在dump文件中的位置。

 

3、使用UE

 

   UE可以查看很多格式类型的文件,包括dump文件。

 

   如下截图,首先用UE打开dump文件

 

    

 

然后,使用ctrl+F 搜索字符串

 

 

 

 

 

如上截图所示,查找的时候勾选”查找ASCII”“匹配大小写”。点击查找下一个个,就能看到字符串,同时还能看到字符串在dump文件中的上下文内容。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用VS2005进行dump文件调试(转)

利用VS2005进行dump文件调试 转自: http://www.cppblog.com/woaidongmao/archive/2009/10/21/99135.html 前言:利...

C++ 生成Dump文件

Dump文件编辑中文版

  • 2016-01-09 23:53
  • 1.02MB
  • 下载

使用dump文件调试Release发布版程序的Crash错误

在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该就是调试release版本了。因为release版本来就少了很多调试信息,更何况一...

IBM JVM dump文件分析工具

  • 2015-10-10 15:33
  • 4.69MB
  • 下载

DUMP文件uid

  • 2014-11-19 00:26
  • 236B
  • 下载

程序异常时通过dump文件记录下异常的详细信息

在开发过程中j
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)