`
iwebcode
  • 浏览: 2072365 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

drwtsn32 调试windows程序

 
阅读更多

一直忙着调试代码,写服务器的代码,有时候真叫人郁闷,郁闷的是要高性能的保持程序继续运行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自带调试工具

    drwtsn32.exe,全称为“Windows 载入程序调试服务”,是 Windows NT 内核系列操作系统中的一部分。它主要用于捕获和记录应用程序的异常情况,帮助开发者或技术支持人员定位程序错误。这个工具能够生成一个转储文件,...

    drwtsn32出错的解决办法

    标题中的"drwtsn32出错的解决办法"是指在使用计算机过程中,遇到名为drwtsn32.exe的程序出现错误的情况。这个程序是微软提供的Dr Watson错误调试工具,主要用于帮助诊断和解决系统中的软件错误。当drwtsn32.exe出现...

    Windows程序调试指南基础

    1. **Drwtsn32.exe**:这是Windows系统自带的调试工具,通过`Drwtsn32 -i`命令可以将其设置为默认调试器。 2. **WinDbg**:更为强大的调试工具,可以直接安装并设置为默认调试器。在注册表中设置`Debugger`键值,...

    windug软件调试方法r1.pdf

    - 注意,使用Drwtsn32.exe作为调试工具时,参数 `-i` 可以是大写或小写形式。 ### 调试方法详解 #### 1. 直接使用Windug进行调试 - **启动Windug**:在Windug中按下 `Ctrl+S` 键,将弹出一个对话框用于选择...

    windows生成dump文件并分析

    在 2003 及以下系统中,输入 drwtsn32 命令,设置相关数值,然后输入:drwtsn32 –i 设置成默认调试器。这将使得系统在程序崩溃时生成 dump 文件。 使用注册表设置生成 dump 文件 在 Win7 及以上系统中,输入 ...

    应用程序崩溃问题处理办法.pdf

    运行drwtsn32.exe检查是否有应用程序的相关信息,或通过drwtsn32 –i设置其为默认调试器。在崩溃后,Dr. Watson会在“应用程序错误”中显示错误信息,同时提供错误日志和dump文件路径。 注意,Dr. Watson仅适用于...

    计算机蓝屏和应用程序异常退出处理办法

    1. **运行DRWTSN32.EXE**:这是一个Windows自带的调试工具,它可以帮助捕获应用程序的异常情况。当异常发生后,通过运行这个工具查看是否有相关的故障信息。 2. **发送故障转储文件**:如果DRWTSN32.EXE捕捉到了...

    应用程序崩溃处理办法.pdf

    运行`drwtsn32.exe`并查看是否有相关应用程序的记录。如果Dr. Watson未设置为默认调试器,可以通过`drwtsn32 -i`进行设置。在Linux环境下,当发生崩溃时,系统会产生一个core dump文件,可以通过`ulimit -c`命令来...

    windows命令行常用命令、常用快捷键.pdf

    131. DDE:这是动态数据交换,是一种在Windows程序间进行数据交换的方式。 132. dvdplay:这是DVD播放器。 133. DVD:这是数字视频光盘,用于存储高容量视频、音频和数据。 ***stopmessenger:如前所述,这是停止...

    windows常用指令

    Drwtsn32命令可以启动系统故障调试工具,帮助用户收集系统崩溃时的信息,便于后续分析。 25. **rononce -p** - 15分钟后的关机命令 Rononce -p命令可以设置计算机在15分钟后自动关机。 26. **dxdiag** - ...

    win32命令集合.doc

    15. drwtsn32: Windows调试工具,用于查看和管理系统错误报告。 16. devmgmt.msc: 设备管理器,可以查看、配置和更新电脑上的硬件设备驱动程序。 17. dfrg.msc: 磁盘碎片整理工具,帮助优化硬盘性能。 18. ...

    Dr.Watson设置参考

    Dr.Watson是一款专为Windows操作系统设计的程序错误调试工具,通常被称为“华生医生”。它能够自动检测、定位并记录应用程序错误,进而帮助用户和技术支持团队更好地理解和解决这些问题。Dr.Watson在遇到程序崩溃或...

    Windows常用命令集.doc

    15. **drwtsn32**: Windows调试工具,用于收集系统崩溃和错误信息。 16. **devmgmt.msc**: 设备管理器,管理和配置计算机上的硬件设备。 17. **dfrg.msc**: 磁盘碎片整理工具,优化硬盘性能。 18. **diskmgmt.msc...

    windows命令.txt

    `drwtsn32` 是Windows系统的调试和故障诊断工具,可以在系统出现异常时收集信息以帮助诊断问题。 #### 25. rononce-p - 定时关机 `rononce-p` 命令用于设置计算机在指定时间后自动关机。 #### 26. dxdiag - ...

    windows操作

    - `drwtsn32`:启动系统错误报告工具,分析并解决系统错误。 - `dvdplay`:播放DVD光盘。 #### 4. **设备与驱动管理** - `devmgmt.msc`:打开设备管理器,管理计算机上的硬件设备。 - `dfrg.msc`:启动磁盘碎片...

    windows 运行命令集合

    DDE(动态数据交换)调试器,用于测试和调试DDE应用程序之间的通信。 ### dvdplay DVD播放器,用于播放DVD视频光盘,但随着多媒体技术的发展,其使用频率逐渐降低。 ### netstopmessenger 停止系统中的Messenger...

    服务器运行命令(Windows server 2003)

    23. **drwtsn32** - 打开系统诊断工具,用于收集系统崩溃信息。 24. **rundll32 user32.dll,LockWorkStation** - 锁定当前工作站。 25. **dxdiag** - 显示 DirectX 系统信息,用于诊断多媒体组件。 26. **regedt32**...

    Dos命令大全

    debug程序调试命令 diskcomp比较磁盘 expand 解压工具 fasthelp快速显示帮助信息 interlnk启动简易网客户机 intersvr启动简易网服务器 qbasic启动Basic集成环境 setver设置版本 share文件共享 subst路径...

    Windows 常用命令大大全

    - **drwtsn32**: 系统医生,用于诊断和解决系统问题。 - **devmgmt.msc**: 设备管理器,用于管理硬件设备。 - **regedt32**: 注册表编辑器的旧版本,主要在早期Windows系统中使用。 - **taskmgr**: 任务管理器,用于...

    windows xp 优化大全

    通过运行`drwtsn32`,取消不必要的选项,可以减少硬盘占用,并避免因程序错误导致的长时间硬盘读写。此外,修改注册表中的`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug`子键,将`Auto...

Global site tag (gtag.js) - Google Analytics