2013-11-13 22:51
⁄ 工业·编程
⁄ 共 511字
几乎每个命令都会直接或者间接地使用符号信息. 进行符号检查的命令却不多.
查看符号的命令是x, 这个字符表示"查看符号". 语法如下所示:
0.00>x [options] module!symbols
module和symbols都可以包含通配符. 在调试陌生代码时, 通配符是一种功能强大的工具, 因为它使我们在阅读代码之前能够猜测函数的名字或者全局变量.
其中, 带有_imp前缀的函数说明了该模块是引入函数的模块. 不带_imp的函数是实现该函数的模块...
WinDbg, 软件调试阅读全文
2013-11-13 22:47
⁄ 工业·编程
⁄ 共 1578字
Procdump是一个轻量级的Sysinternal团队开发的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因. 你还可以把它作为生成dump的工具使用在其他的脚本中.
有了它, 就完全不需要在同一台服务器上使用诸如32位系统上的Debug Diag 1.1或是64位系统上的ADPlus了.
问题描述
===============
在任务管理器里发现w3wp.exe的CPU总在49%-60%左右, 间歇性地会下...
WinDbg, 软件调试阅读全文
2013-11-13 22:44
⁄ 工业·编程
⁄ 共 375字
假设有个应用程序, 一启动就崩溃, 根本就来不及让你用Visual Studio来Attach, 并且该应用程序在使用Visual Studio直接lunch的情况下又不会出现这样的问题, 该怎么办呢?
除了使用<<在进程崩溃的时候自动抓取一个DUMP文件>>中的方法, 还可以使用WinDBG直接加载应用程序的可执行文件, 然后在应用程序退出的系统函数上下断点, 从而得到退出时的call stack.
让我们用notepad.exe作为例子吧.
首先, 使用Open Executable来...
WinDbg, 软件调试阅读全文
2013-11-12 22:43
⁄ 工业·编程
⁄ 共 233字
比方说你抓了个full dump, 在debug一个很复杂的问题, 可能你已经有了结果, 或者还在研究当中, 这时你被别的事情打搅了, 回家了, 第二天来重开dump文件, 不记得昨天做到哪里了. 在或者说, 你的同事很牛, 他分析了dump文件并得出了结论. 你想学一下他的思路.
在这两种情况下, 让windbg把曾经输入过的命令按顺序写到文件里的功能就相当有帮助了.
命令举例如下:
.write_cmd_hist c:\WindbgCmdHistory.txt
参考资料:
WinDBG帮助文件.
WinDbg, 软件调试阅读全文
2013-11-12 22:42
⁄ 工业·编程
⁄ 共 112字
命令很简单:
~0s 切换到0号线程
~3s 切换到3号线程
一些其他命令:
~*e !clrstack 遍历每个线程, 依次输出它们的托管调用栈.
!threads 查看所有的托管线程
WinDbg, 软件调试阅读全文
2013-11-12 22:41
⁄ 工业·编程
⁄ 共 231字
在WinDBG的Command窗口中, 默认情况下, 你输入的命令很容易和该命令以及附近命令的输出混杂在一起. 在寻找之前命令的结果的时候, 眼睛看起来会很累.
WinDBG提供了一个选项, 通过这个选项, 你可以把命令输入与输出的颜色进行设置.
选项名:
Prompt level command window text
Prompt level command windows text background
点击菜单View->Options...
配置后的结果如下:
好了, 你的眼睛可以舒服一点了.
WinDbg, 软件调试阅读全文
2013-11-11 22:40
⁄ 工业·编程
⁄ 共 332字
从本质上说, 这个功能是WinDBG的日志功能的一个应用而已. WinDBG的log功能可以记录你在WinDBG中使用的每一个命令以及其对应的输出.
那么如何开启WinDBG的日志功能呢?
首先, 可以选择从命令行中启动WinDBG. 举例, 使用下面的带有-logo参数的命令:
windbg.exe -logo c:\logfile.txt
其次, 如果你已经在一个debug session里了, 你可以使用.logopen命令来开始记录.
回答本文标题中的问题, 步骤如下:
第一步, 开启日志记录:
...
WinDbg, 软件调试阅读全文
2013-11-10 22:38
⁄ 工业·编程
⁄ 共 7303字
在如下的情况下需要使用这样的技巧:
1. 生产环境上出问题, 我们需要抓取dump文件, 在线下去debug.
2. 正在运行一大堆测试, 当其中一个崩溃的时候, 不希望在运行时干扰整个测试动作, 仅需要收集一些测试信息.
3. 问题在连接到debugger后无法重现.
简单来说, 就是你希望在对环境影响最小的前提下, 抓取尽可能多的信息.
为了满足这种需求, 最好的方式是配置 just-in-time (JIT) debugger , 让它在进程崩溃的任何时候能够: 启动, 抓...
WinDbg, 软件调试阅读全文
2013-11-10 20:30
⁄ 科技·视野
⁄ 共 5803字
随着电信运营商的基地和云计算数据中心的不断涌现,对于电信运营商而言,支撑互联网业务及云计算服务的数据中心已不再是成本中心,而是已经变为发展业务核心竞争力的盈利中心,电信行业使用的传统数据中心和标准化服务器往往难于应对急剧变化并快速发展的大型互联网业务对于IT基础架构的苛刻需求,需要通过技术革新以应对云计算模式数据中心的灵活应用要求。互联网企业的迅速崛起,极大程度上依赖于革新式的...
电信, 移动互联网, 行业分析阅读全文
2013-11-09 10:15
⁄ 工业·编程
⁄ 共 1598字
微软的同一平台战略已经大张旗鼓而来,而自Windows 8开始,微软对下一个时代的Windows开发布局已经做好,Win32开发者何去何从?下一个十年我们该学习什么新技术?
1、游戏 很高兴,DirectX此次依然在微软的核心部分受到支持,可DX每次更新就会有很大的变化,开发者需要即时跟进Direct3D技术风潮,万万不能一直停留在DX9这些时代。而自Windows 8开始,微软还引进了XInput和DirectXMath、DXGI等可以跨平台的东西,可以说DX接口...
windows_API, 软件之路阅读全文