C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  调试:Windbg,SOS

调试
摘要:这是一个Winform程序,用于项目中的定时运算。症状是,运行一段时间后,内存持续上升。如一天内就能够达到300M。 打开.Net Memory Profiler,监控该程序,一段时间后,看到该程序产生了大量的Int32[]与string。 于是跟着这些个Int32数组与字符串乱点,发现... 阅读全文
posted @ 2014-08-21 11:52 逆心 阅读(1656) 评论(2) 推荐(0) 编辑

摘要:.loadby sos.dll mscorwks.symfix c:\windows\symbolswindbg配置问题汇总1、Failed to find runtime DLL (clr.dll), 0x80004005 必须加载正确的.net sos版本0:000> !clrstackFai... 阅读全文
posted @ 2014-08-19 15:31 逆心 阅读(7805) 评论(0) 推荐(0) 编辑

摘要:一、Windows内存架构简介 在用户态(user mode)中运行的进程通常会使用一个或多个堆托管器。最常见的堆管理器就是Windows堆管理器(windowsheap manager)。另一个常见的堆管理器就是CLR堆管理器,它是在.Net应用程序中使用。 Windows堆管理器负责满足... 阅读全文
posted @ 2014-06-11 17:38 逆心 阅读(1350) 评论(1) 推荐(3) 编辑

摘要:控制调试目标执行非常有用,这与在Visual Studio中设置断点一样。 1、中断执行 中断执行可以使用组合键CTRL+C,这个组合键将使调试器把一个线程注入到目标进程中,并且执行一条中断语句。另外还可以通过设置断点实现。 2、恢复执行 当调试器中断执行时,(由于触发了断点或者其他事件... 阅读全文
posted @ 2014-05-26 09:54 逆心 阅读(1476) 评论(0) 推荐(0) 编辑

摘要:1、ntdll!ZwWaitForSingleObject 线程被挂起,如果下面跟着是这样子:RetAddr : Args to Child : Call S... 阅读全文
posted @ 2014-05-23 17:20 逆心 阅读(1826) 评论(0) 推荐(0) 编辑

摘要:解决性能问题的时候,我往往会让客户添加下面一些计数器进行性能收集。Process object下的所有计数器;Processor object下的所有计数器;System object下的所有计数器;Memory object下的所有计数器; 在排查性能问题的时候,重点关注如下数据:一、Pro... 阅读全文
posted @ 2014-05-23 17:14 逆心 阅读(709) 评论(0) 推荐(0) 编辑

摘要: 阅读全文
posted @ 2014-05-16 16:31 逆心 阅读(1056) 评论(3) 推荐(1) 编辑

摘要:首先写一段代码如下:namespace ConsoleApplication3{ class Program { static void Main(string[] args) { Console.WriteLine("Hello, ... 阅读全文
posted @ 2014-05-16 16:20 逆心 阅读(2111) 评论(0) 推荐(0) 编辑

摘要:一、SOS扩展命令 SOS包含几十个命令,要熟练使用SOS,首先要了解SOS有哪些命令。下面给出SOS命令列表。命令描述BPMD[ ] [-md]建立一个断点在指定模块的指定方法上。如果指定模块和方法尚未被载入,该命令等到该模块被载入并且被即时(just-in-time)编译的通知后再建立断点。C... 阅读全文
posted @ 2014-05-16 11:14 逆心 阅读(9195) 评论(2) 推荐(4) 编辑

摘要:一、High CPU试验 1、示例代码 static void Main(string[] args) { Console.Clear(); Console.WriteLine("到命令行下,切换到windbg目录,执行adp... 阅读全文
posted @ 2014-05-16 09:28 逆心 阅读(11409) 评论(3) 推荐(4) 编辑

摘要:内存是存储数据、代码的地方,通过内存查看命令可以分析很多问题。相关命令可以分为:内存查看命令和内存统计命令。内存统计命令用来分析内存的使用状况。一、查看内存 有非常丰富的内存查看命令,它们被容易为d*格式,如下所示:d[类型] [地址范围] d代表Display,类型包括:字符、字符串、双字... 阅读全文
posted @ 2014-05-15 18:22 逆心 阅读(10846) 评论(7) 推荐(3) 编辑

摘要:Windbg既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息。调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺。一、进程命令 进程命令包括这些内容:显示进程列表、进程环境块、设置进程环境。 1、进程列表 多个命令可显示进程列表,但一般只能在特定情况下使用,... 阅读全文
posted @ 2014-05-15 15:24 逆心 阅读(8012) 评论(0) 推荐(1) 编辑

摘要:符号文件是一种辅助数据,它包含了对应用程序代码的一些标注信息,这些信息在调试过程中非常有用。如果没有辅助数据,那么能获得的信息就只有应用程序的二进制文件。二进制文件很难调试,因为无法看到代码中的函数名、数据结构名等。这正是符号文件能显示的。符号文件的扩展名通常是pdb,调试器能够很好地解析这种文... 阅读全文
posted @ 2014-05-15 10:22 逆心 阅读(11642) 评论(3) 推荐(1) 编辑

摘要:Windbg.exe是Windows的一个调试工具,它支持两种调试模式,即“实时调试模式(Living)”和“事后调试模式(Postmortem)”。实时模式:被调试的程序正在运行当中,调试器可以实时分析、修改被调试目标的状态,如寄存器、内存、变量,调试exe可执行程序或双击双机实时调试都属于这... 阅读全文
posted @ 2014-05-14 16:21 逆心 阅读(9057) 评论(0) 推荐(2) 编辑