高CPU调试(一)
来源:互联网 发布:网络销售技巧和话术 编辑:程序博客网 时间:2024/04/29 21:06
static void Main(string[] args) { Console.Clear(); Console.WriteLine("到命令行下,切换到windbg目录,执行adplus -hang -pn highcpu.exe -o c:\\dumps"); Console.WriteLine("如果要停止,按Ctrl+C结束程序"); Console.WriteLine("===================================================="); while (true) { Console.SetCursorPosition(0, 3); Console.Write(DateTime.Now.Ticks.ToString()); } Console.ReadKey(); }
dmp:
第一个Dump:0:000> .load clr20\sos.dll0:000> !runaway User Mode Time Thread Time 0:334 0 days 0:00:00.468 3:dc8 0 days 0:00:00.000 2:14d0 0 days 0:00:00.000 1:750 0 days 0:00:00.000第二个Dump:0:000> .load clr20\sos.dll0:000> !runaway User Mode Time Thread Time 0:334 0 days 0:00:08.221 3:dc8 0 days 0:00:00.000 2:14d0 0 days 0:00:00.000 1:750 0 days 0:00:00.000第三个Dump:0:000> .load clr20\sos.dll0:000> !runaway User Mode Time Thread Time 0:334 0 days 0:00:11.559 3:dc8 0 days 0:00:00.000 2:14d0 0 days 0:00:00.000 1:750 0 days 0:00:00.000从上面的输出可以看到,线程0的CPU时间不断增加,CPU高占用很可能是由于线程0正在执行的代码有问题造成的。
可以用!clrstack命令查看一下当前的调用堆栈以及其上的局部变量和值。
当执行!clrstack时,报出了如下提示:
0:000> !clrstackFailed to find runtime DLL (mscorwks.dll), 0x80004005Extension commands need mscorwks.dll in order to have something to do.
这不是我想要的,加载mscorwks失败。后来经过调试发现,原来是第一步就.load时就错了,因为我的那段代码用的是vs2010。所以应该加载.net frameword 4.0。
所以,最初应该执行的.load C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/sos.dll
然后在执行!clrstack
第三个Dump
0:000> !clrstack*** ERROR: Symbol file could not be found. Defaulted to export symbols for clr.dll - PDB symbol for clr.dll not loadedOS Thread Id: 0x334 (0)Child SP IP Call Site001cf2b8 779e70f4 [InlinedCallFrame: 001cf2b8] 001cf2b4 6a14672e *** WARNING: Unable to verify checksum for mscorlib.ni.dllDomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr, COORD)001cf2b8 6a1b6cfd [InlinedCallFrame: 001cf2b8] Microsoft.Win32.Win32Native.SetConsoleCursorPosition(IntPtr, COORD)001cf2ec 6a1b6cfd System.Console.SetCursorPosition(Int32, Int32)001cf324 005500bb *** WARNING: Unable to verify checksum for ConsoleApplication3.exeConsoleApplication3.Program.Main(System.String[]) [C:\Users\ChenZhuo\documents\visual studio 2010\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs @ 22]001cf4dc 70a33e22 [GCFrame: 001cf4dc]第二个Dump
0:000> !clrstack*** ERROR: Symbol file could not be found. Defaulted to export symbols for clr.dll - PDB symbol for clr.dll not loadedOS Thread Id: 0x334 (0)Child SP IP Call Site001cf2b8 779e70f4 [InlinedCallFrame: 001cf2b8] 001cf2b4 6a14672e *** WARNING: Unable to verify checksum for mscorlib.ni.dllDomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr, COORD)001cf2b8 6a1b6cfd [InlinedCallFrame: 001cf2b8] Microsoft.Win32.Win32Native.SetConsoleCursorPosition(IntPtr, COORD)001cf2ec 6a1b6cfd System.Console.SetCursorPosition(Int32, Int32)001cf324 005500bb *** WARNING: Unable to verify checksum for ConsoleApplication3.exeConsoleApplication3.Program.Main(System.String[]) [C:\Users\ChenZhuo\documents\visual studio 2010\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs @ 22]001cf4dc 70a33e22 [GCFrame: 001cf4dc]第一个Dump:
0:000> !clrstack*** ERROR: Symbol file could not be found. Defaulted to export symbols for clr.dll - PDB symbol for clr.dll not loadedOS Thread Id: 0x334 (0)Child SP IP Call Site001cf2b8 779e70f4 [InlinedCallFrame: 001cf2b8] 001cf2b4 6a14672e *** WARNING: Unable to verify checksum for mscorlib.ni.dllDomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr, COORD)001cf2b8 6a1b6cfd [InlinedCallFrame: 001cf2b8] Microsoft.Win32.Win32Native.SetConsoleCursorPosition(IntPtr, COORD)001cf2ec 6a1b6cfd System.Console.SetCursorPosition(Int32, Int32)001cf324 005500bb *** WARNING: Unable to verify checksum for ConsoleApplication3.exeConsoleApplication3.Program.Main(System.String[]) [C:\Users\ChenZhuo\documents\visual studio 2010\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs @ 22]001cf4dc 70a33e22 [GCFrame: 001cf4dc]出问题的代码已可以看得到,就在Main方法里。
0 0
- 高CPU调试(一)
- 高CPU调试(二)
- CPU飙高调试
- 服务端 高性能 (一) cpu
- linux 高cpu占用调试
- linux 高cpu占用调试
- JVM调试和优化(一)服务内存占用高然后CPU高最后宕机
- linux cpu 使用率比较高问题调试
- 占用cpu高的调试方法
- Linux Cpu占用高调试方法
- Linux Cpu占用高调试方法
- windbg调试cpu占用率高的进程
- CPU语句占用高解决一例
- Linux 多线程调试(内存占用、死循环、CPU占用率高……)
- Linux 多线程调试(内存占用、死循环、CPU占用率高……)
- Linux 多线程调试(内存占用、死循环、CPU占用率高……)
- Linux 多线程调试(内存占用、死循环、CPU占用率高……)
- Linux 多线程调试(内存占用、死循环、CPU占用率高……)
- 如何用IDEA一步一步开发WebService服务器端
- j2ee的web工程,研发过程中,无论什么架构和框架(单工程的、前后端分离的、Struts、spring等),都离不开一个问题,前后端如何传参。那么,传参究竟是什么意思呢?
- Springmvc 4.x利用@ResponseBody返回Json数据
- 《Java源码解析》之NIO的Selector机制(Part3:Selector.select())
- ViewBag&&ViewData
- 高CPU调试(一)
- html 的input标签 各种输入控制
- 如何用IDEA一步一步开发WebService客户端程序
- 敌军布阵(线段数)
- 第十四周项目4矩阵运算(1)矩阵相加
- JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
- jsp 页面 forEach--table 下 删除当前的tr行
- 解析gpio-keys(kernel-4.7)
- Day89: Tomorrow is check day