一直忙着调试代码,写服务器的代码,有时候真叫人郁闷,郁闷的是要高性能的保持程序继续运行n多天还没有事情,本来这也是程序员该做的事情,但是有时候一些长期积累下来的问题会造成程序指明性的打击~~~
在写这个程序的时候,本机调试代码的时候都没有遇到任何内存泄漏的问题,调试的时候都很清晰,但是到客户那里运行一天到两天就没名的挂掉,真让人郁闷
而且没有任何报错~~无奈,
打开了drwtsn32来检测程序的运行报错情况
drwtsn32是windows调试的利器,调试不常见错误的程序的时候,累积错误的时候,都可以用它.
在命令行窗口,输入drwtsn32
然后就可以看到drwtsn32的运行界面
然后设置"转存到符号表"
"转储全部线程上下文"会在出错的时候把程序运行的上下文都记录下来,如果只想知道出错那个地方的记录,就不要选这个,看起来方便很多
然后确定保存这些信息
相应的windows程序生成的时候,也得做一些改动,要生成map文件,这样好找到出问题的代码地方
vc设置:
1、配置属性-〉c/c++-〉常规-〉调试信息格式, 选择“程序数据库(/Zi)”
2、配置属性-〉c/c++-〉优化,选择“禁用(/Od)”
3、配置属性-〉连接器-〉调试-〉生成调试信息,选择 “是(/DEBUG)”
4、配置属性-〉连接器-〉调试-〉生成影射文件,选择 “是(/MAP)”
5、配置属性-〉连接器-〉调试-〉影射文件名,选择“$(OutDir)/$(ProjectName).map”
6、配置属性-〉连接器-〉调试-〉影射导出,选择“是(/MAPINFO:EXPORTS)”
7、配置属性-〉连接器-〉调试-〉影射行,选择“是(/MAPINFO:LINES)”
8、配置属性-〉连接器-〉高级->固定基址,选择“生成重定位节(/FIXED:NO)”
然后命令行运行drwtsn32
等待程序出错~~
程序出错以后会把log和一个dmp文件存储到故障转存 和日志文件路径 那个目录下面,这个目录可以自己设置.
在log信息里面有这样的信息
Microsoft (R) Windows 2000 (TM) Version 5.00 DrWtsn32
Copyright (C) 1985-1999 Microsoft Corp. All rights reserved.
发生应用程序意外错误:
应用程序: (pid=1248)
时间: 2006-4-27 @ 09:49:29.613
意外情况编号: c0000005 (访问侵犯)
*----> 系统信息 <----*
计算机名: F6B2548C83754CF
用户名: Administrator
处理器数量: 1
处理器类型: x86 Family 6 Model 8 Stepping 6
…………
0041e6bb 8b45e0 mov eax,[ebp+0xe0] ss:00d9907e=????????
错误 ->0041e6be 8b500c mov edx,[eax+0xc] ds:00c69ee6=????????
0041e6c1 52 push edx
0041e6c2 ff1518af4300 call dword ptr [0043af18] ds:0043af18=7c177c00
…………………………
很多信息
然后对应的去找你vc 生成的map文件的地方~~
找到代码出现那样情况的地方~~
~~~然后让你的程序VC调试,反汇编,找到对应的地方~~
ps:这只是一种最简单的方法:)
更多的方法,看《windows程序调试》
分享到:
相关推荐
drwtsn32.exe,全称为“Windows 载入程序调试服务”,是 Windows NT 内核系列操作系统中的一部分。它主要用于捕获和记录应用程序的异常情况,帮助开发者或技术支持人员定位程序错误。这个工具能够生成一个转储文件,...
标题中的"drwtsn32出错的解决办法"是指在使用计算机过程中,遇到名为drwtsn32.exe的程序出现错误的情况。这个程序是微软提供的Dr Watson错误调试工具,主要用于帮助诊断和解决系统中的软件错误。当drwtsn32.exe出现...
1. **Drwtsn32.exe**:这是Windows系统自带的调试工具,通过`Drwtsn32 -i`命令可以将其设置为默认调试器。 2. **WinDbg**:更为强大的调试工具,可以直接安装并设置为默认调试器。在注册表中设置`Debugger`键值,...
- 注意,使用Drwtsn32.exe作为调试工具时,参数 `-i` 可以是大写或小写形式。 ### 调试方法详解 #### 1. 直接使用Windug进行调试 - **启动Windug**:在Windug中按下 `Ctrl+S` 键,将弹出一个对话框用于选择...
在 2003 及以下系统中,输入 drwtsn32 命令,设置相关数值,然后输入:drwtsn32 –i 设置成默认调试器。这将使得系统在程序崩溃时生成 dump 文件。 使用注册表设置生成 dump 文件 在 Win7 及以上系统中,输入 ...
运行drwtsn32.exe检查是否有应用程序的相关信息,或通过drwtsn32 –i设置其为默认调试器。在崩溃后,Dr. Watson会在“应用程序错误”中显示错误信息,同时提供错误日志和dump文件路径。 注意,Dr. Watson仅适用于...
1. **运行DRWTSN32.EXE**:这是一个Windows自带的调试工具,它可以帮助捕获应用程序的异常情况。当异常发生后,通过运行这个工具查看是否有相关的故障信息。 2. **发送故障转储文件**:如果DRWTSN32.EXE捕捉到了...
运行`drwtsn32.exe`并查看是否有相关应用程序的记录。如果Dr. Watson未设置为默认调试器,可以通过`drwtsn32 -i`进行设置。在Linux环境下,当发生崩溃时,系统会产生一个core dump文件,可以通过`ulimit -c`命令来...
131. DDE:这是动态数据交换,是一种在Windows程序间进行数据交换的方式。 132. dvdplay:这是DVD播放器。 133. DVD:这是数字视频光盘,用于存储高容量视频、音频和数据。 ***stopmessenger:如前所述,这是停止...
Drwtsn32命令可以启动系统故障调试工具,帮助用户收集系统崩溃时的信息,便于后续分析。 25. **rononce -p** - 15分钟后的关机命令 Rononce -p命令可以设置计算机在15分钟后自动关机。 26. **dxdiag** - ...
15. drwtsn32: Windows调试工具,用于查看和管理系统错误报告。 16. devmgmt.msc: 设备管理器,可以查看、配置和更新电脑上的硬件设备驱动程序。 17. dfrg.msc: 磁盘碎片整理工具,帮助优化硬盘性能。 18. ...
Dr.Watson是一款专为Windows操作系统设计的程序错误调试工具,通常被称为“华生医生”。它能够自动检测、定位并记录应用程序错误,进而帮助用户和技术支持团队更好地理解和解决这些问题。Dr.Watson在遇到程序崩溃或...
15. **drwtsn32**: Windows调试工具,用于收集系统崩溃和错误信息。 16. **devmgmt.msc**: 设备管理器,管理和配置计算机上的硬件设备。 17. **dfrg.msc**: 磁盘碎片整理工具,优化硬盘性能。 18. **diskmgmt.msc...
`drwtsn32` 是Windows系统的调试和故障诊断工具,可以在系统出现异常时收集信息以帮助诊断问题。 #### 25. rononce-p - 定时关机 `rononce-p` 命令用于设置计算机在指定时间后自动关机。 #### 26. dxdiag - ...
- `drwtsn32`:启动系统错误报告工具,分析并解决系统错误。 - `dvdplay`:播放DVD光盘。 #### 4. **设备与驱动管理** - `devmgmt.msc`:打开设备管理器,管理计算机上的硬件设备。 - `dfrg.msc`:启动磁盘碎片...
DDE(动态数据交换)调试器,用于测试和调试DDE应用程序之间的通信。 ### dvdplay DVD播放器,用于播放DVD视频光盘,但随着多媒体技术的发展,其使用频率逐渐降低。 ### netstopmessenger 停止系统中的Messenger...
23. **drwtsn32** - 打开系统诊断工具,用于收集系统崩溃信息。 24. **rundll32 user32.dll,LockWorkStation** - 锁定当前工作站。 25. **dxdiag** - 显示 DirectX 系统信息,用于诊断多媒体组件。 26. **regedt32**...
debug程序调试命令 diskcomp比较磁盘 expand 解压工具 fasthelp快速显示帮助信息 interlnk启动简易网客户机 intersvr启动简易网服务器 qbasic启动Basic集成环境 setver设置版本 share文件共享 subst路径...
- **drwtsn32**: 系统医生,用于诊断和解决系统问题。 - **devmgmt.msc**: 设备管理器,用于管理硬件设备。 - **regedt32**: 注册表编辑器的旧版本,主要在早期Windows系统中使用。 - **taskmgr**: 任务管理器,用于...
通过运行`drwtsn32`,取消不必要的选项,可以减少硬盘占用,并避免因程序错误导致的长时间硬盘读写。此外,修改注册表中的`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug`子键,将`Auto...