调试与反编译
MultiStone
更多更新的博文教程尽在MultiStone个人独立博客:xuleilx.github.io
【大家有任何问题,请在我的个人博客留言交流】
展开
-
段错误bug的调试(core & objdump)
我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的。实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除。但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个内存访问越界的错误谈谈如何快速定位这些"段错误"的语句。下面将就以下的一个存在段错误的程序介绍几种调试方法:转载 2012-03-17 23:45:22 · 4714 阅读 · 0 评论 -
使用Windbg解析dump文件
第一章 常用的Windbg指令①!analyze -v ②kP 可以看函数的入参③!for_each_frame dv /t 可以看函数中的局部变量④dc 产看某一内存中的值 可以直接接变量名 不过可能需要回溯栈⑤!threads原创 2013-12-28 00:26:19 · 71610 阅读 · 0 评论 -
内存越界(累积篇)
下面使用代码来说明这个问题。int functiontest(char *pszParam, int nLen, int nID){char szSQL[500];sprintf(szSQL," Select * from tabble1 " " where cond1 = %s and id = %d ",pszParam, //当pszParam为未初始化原创 2013-02-19 17:01:19 · 671 阅读 · 0 评论 -
window上如何设置才能获取dump文件
■Windows2008下的设置方法: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps] "DumpCount"=dword:0000000A "DumpType"=dword:00000002 "DumpFolder"=Dumpファイルの出力ディレクトリ转载 2013-02-06 15:51:32 · 5913 阅读 · 0 评论 -
WinDbg分析DMP文件方法完全攻略
kd 显示原始堆栈内容kp = 显示该内存相邻的函数调用关系转载 2013-02-04 00:01:51 · 1737 阅读 · 0 评论 -
如何使用gcore工具获取一个core文件而不重启应用?
解决方法:解决:问题:当调试一个程序的时候,理想状态是不重启应用程序就获取core文件。解决:gcore命令可以使用下面步骤来获取core文件:1. 确认gdb软件包已经被正确安装。2. 使用调试参数编译程序(例如: gcc中使用"-g"选项),编译后不要去除文件的调试符号信息。3. 执行应用程序。4. 执行gcore命令生成指定应用程序的core文件并且保转载 2012-12-19 13:28:59 · 3301 阅读 · 0 评论 -
Linux下core文件调试方法
比较全的Core说明:http://wenku.baidu.com/view/e260aca6f524ccbff121847c.html?from=rec&pos=4&weight=18&lastweight=18&count=5在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码转载 2012-03-16 00:15:35 · 471 阅读 · 0 评论 -
error PRJ0019: A tool returned an error code from "Performing Post-Build Event..."
用vs2005编译工程的时候,得到这个错误:error PRJ0019: A tool returned an error code from "Performing Post-Build Event..." 解决方法:打开properties属性页,找到Build Events选项,选择Post-build event选项,它的command line选项置成空的就行了。原创 2012-06-27 11:11:44 · 8131 阅读 · 0 评论 -
The breakpoint will not currently be hit. No symbols have been loaded for this document
The breakpoint will not currently be hit. No symbols have been loaded for this document1.查看pdb文件有没有更新2.Debug --- windows -- modules 中对应的库的加载路径是否正确原创 2012-06-15 16:58:50 · 4187 阅读 · 0 评论 -
char * 强制类型转换
[root@templateTest tmp]# gdb ./a.outGNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5)Copyright (C) 2009 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later This is fre原创 2012-06-06 11:33:44 · 2936 阅读 · 0 评论 -
gcc和g++的区别
gcc和g++都是GNU(组织)的一个编译器。gcc和g++的区别 我们在编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确,如果再遇上转载 2012-04-09 15:53:51 · 572 阅读 · 0 评论 -
Linux下core文件调试方法、修改core文件的默认路径
原文出处:http://blog.csdn.net/shaovey/article/details/2744487在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看c转载 2014-02-11 23:04:29 · 3145 阅读 · 0 评论