如何修复这个dump文件(dump文件是什么意思啊?)

wanfu 麦克百科 64 0

如何修复这个dump文件

调试Dump文件很简单,双击自动打开VC然后F7运行。
但是中间要注意很多事情。

1。Dump文件放在哪里

Dump文件不用非要放在你编译出来的位置,你完全可以建立一个新的文件夹来放它。

2。要恢复当时的现场

可能你要问,怎么可能,这个dump文件可是用户发给我的,我不可能去用户家里调试吧?
这个恢复现场可不是指的非要到那台机器上去,而是要把产生dump文件对应的二进制文件拿到。

但是恢复现场需要所有的二进制文件都要对应,你一定要有导致用户崩溃的那些Exe和Dll。既然是你发布的程序,Exe文件当然你会有。所以这里只考虑Dll就行了。
Dump文件中记录了所有dll文件的版本号和时间戳,所以你一定可以同过某种途径拿到它。如果你能从用户那里拿到更好,如果不方便,用户不可能用的是我们平常不常用的操作系统,所以找个有对应系统的机器一般都会有。但是记住不光是文件名称要一致,还要核对版本和时间戳,如果不同一样没有办法用。

如果客户用了某个特殊的补丁怎么办?
其实这个问题也很好解决,只要它不阻碍阅读堆栈,就不用管它,调试Dump和运行程序不一样,缺少一两个Dll没有任何问题。

如果真的需要怎么办?
那就看下面一节。

3。符号文件

符号文件现在主要是指PDB文件。

如果没有符号文件,那么调试的时候可能导致堆栈错误。
如果你丢失了这个发布里边你编译出来的那些exe和dll的PDB,那么这个损失是严重的,你重新编译出来的版本是不能使用的,乖乖的看反汇编自己猜位置吧。不过也有特殊的 *** 可以弥补,这里不讨论。所以一定要在发布的时候把你自己的所有PDB文件都备份起来。

dump文件是什么意思啊?

简介:dmp是Windows蓝屏瞬间建立的文件的后缀名,dmp文件是进程的内存镜像,计算机上称为dump文件。在Windbg中可以通过.dump命令保存进程的dmp文件。命令为:.dump
/ma
c:\testdump.dmp
使用了/ma参数的命令保存下来的dump文件应该包含进程的完整信息,包括整个用户态的内存,信息量全面,文件尺寸也相应的比较大。如果不使用/ma参数,保存下来的dump文件只包含了部分重要资料,比如寄存器和线程栈空间,文件尺寸会比较小,无法分析所有的数据。
作用:可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的。
打开 *** :这种文件必须用专用工具软件打开,比如使用WinDbg打开。

下面分享相关内容的知识扩展:

安卓手机里的dump能删除吗,删了不会影响手机运行速度吗?

可以删除的,因为dump只是一个文件,一般是程序或者系统用于缓存内存内容的临时文件。

备份或导出数据库命令mysqldump怎么使用

、各种用法说明
A. 最简单的用法:
mysqldump -uroot -pPassword [database name]
> [dump file]

上述命令将指定数据库备份到某dump文件(转储文件)中,比如:
mysqldump -uroot -p123 test > test.dump

生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。

B. --opt
如果加上--opt参数则生成的dump文件中稍有不同:
. 建表语句包含drop table if exists tableName
. insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables

C. 跨主机备份
使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:
mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb

-C指示主机间的数据传输使用数据压缩

D. 只备份表结构
mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump

将只备份表结构。--databases指示主机上要备份的数据库。如果要备份某个MySQL主机上的所有数据库可以使用--all-databases选项,如下:
mysqldump --all-databases
> test.dump

E. 从备份文件恢复数据库
mysql [database name] < [backup file name]

2、结合Linux的cron命令实现定时备份
比如需要在每天凌晨1:30备份某个主机上的所有数据库并压缩dump文件为gz格式,那么可在/etc/crontab配置文件中加入下面代码行:
30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz

前面5个参数分别表示分钟、小时、日、月、年,星号表示任意。date '+%m-%d-%Y'得到当前日期的MM-DD-YYYY格式。

3、一个完整的Shell脚本备份MySQL数据库示例

#vi /backup/backup.sh

#!bin/bash
cd /backup
echo "You are in backup dir"
mv backup* /oldbackup
echo "Old dbs are moved to oldbackup folder"
File = backup-$Now.sql
mysqldump -u user -p password database-name > $File
echo "Your database backup successfully completed"

如何分析64位系统上32位程序的dump

随着硬件越来越便宜,为了能够识别大于4G的内存,越来越多的电脑使用64位的操作系统,然后现在大多数的软件还是32位的,64位的系统使用wow64来帮助运行32位的程序。如果一个64位系统上,32位程序出现crash,得到一个dump文件,如果不进行转换是不能直接用windbg分析的。下面介绍如何处理这样一个dump文件。
首先,我们使用windbg打开dump文件。这时候如果直接输入! *** yze -v ,得到的堆栈结果肯定是看不到想看的结果的。
其次,加载wow64exts模块,因为需要这个模块帮助把64位的dump,转换成32位的dump。输入 .load wow64exts
再次,进行转换。输入!sw
最后,按照分析32位dump文件的 *** ,分析这个dump。
以上,希望可以帮到你。

抱歉,评论功能暂时关闭!