У меня есть приложение .NET 3.5 WPF, которое будет время от времени использовать 96-99% времени процессора при запуске только на Win 7 64 бит. Конечно, когда это происходит, даже само приложение перестает работать правильно. Это еще одна проблема, которая возникает только в 64-битной версии Windows 7.WPF: поиск и устранение неисправностей приложений с чрезмерно высокой загрузкой процессора на Win 7 64 с использованием WinDbg
Приложение в настоящее время находится в этом состоянии, и я хочу использовать WinDbg или другое средство отладки, чтобы захватить как можно больше информации. Кто-нибудь, кто может помочь с этим в режиме реального времени?
Во-первых, это то, что я могу получить от Process Explorer: По мере того как прикрепленное изображение показывает , у меня есть количество нитей 40 с кучей из них, имеющий начальный адрес:
mscorwrks.dll!GetMetaDataInternalInterfaceFromPublic+0x934c.
Есть о 24 потока, которые в настоящее время показывают это как начальный адрес. Но я не могу связать это с чем-либо в моем коде.
Так что я в настоящее время подключен к процессу с помощью WinDbg, который приостановил все потоки. Тогда я сделал
!runaway 3
, который дает мне:
0:039> !runaway 3
User Mode Time
Thread Time
33:29bc 0 days 0:27:48.711
21:2880 0 days 0:26:22.021
34:18cc 0 days 0:24:38.873
18:2a04 0 days 0:23:56.753
23:2618 0 days 0:18:58.947
24:27e8 0 days 0:17:36.859
30:21d4 0 days 0:17:05.800
32:248c 0 days 0:17:04.286
35:2b00 0 days 0:16:20.809
22:2680 0 days 0:15:37.597
5:2a28 0 days 0:15:10.234
31:ee4 0 days 0:15:07.348
20:20f0 0 days 0:14:32.903
17:29ac 0 days 0:14:02.202
10:20dc 0 days 0:00:51.152
11:2ad0 0 days 0:00:11.247
37:2c14 0 days 0:00:06.489
38:2f3c 0 days 0:00:01.466
25:1db8 0 days 0:00:00.920
1:2a84 0 days 0:00:00.452
0:1494 0 days 0:00:00.093
2:1ba0 0 days 0:00:00.078
29:53c 0 days 0:00:00.015
27:278c 0 days 0:00:00.015
7:8d4 0 days 0:00:00.015
4:2620 0 days 0:00:00.015
39:215c 0 days 0:00:00.000
36:2088 0 days 0:00:00.000
28:26e0 0 days 0:00:00.000
26:2960 0 days 0:00:00.000
19:2a10 0 days 0:00:00.000
16:2a70 0 days 0:00:00.000
15:24a8 0 days 0:00:00.000
14:2208 0 days 0:00:00.000
13:2bcc 0 days 0:00:00.000
12:2a6c 0 days 0:00:00.000
9:1a38 0 days 0:00:00.000
8:2a98 0 days 0:00:00.000
6:1200 0 days 0:00:00.000
3:2af8 0 days 0:00:00.000
Kernel Mode Time
Thread Time
11:2ad0 0 days 0:00:03.650
10:20dc 0 days 0:00:02.230
33:29bc 0 days 0:00:00.686
34:18cc 0 days 0:00:00.577
21:2880 0 days 0:00:00.327
18:2a04 0 days 0:00:00.327
24:27e8 0 days 0:00:00.280
35:2b00 0 days 0:00:00.249
1:2a84 0 days 0:00:00.218
30:21d4 0 days 0:00:00.156
22:2680 0 days 0:00:00.140
5:2a28 0 days 0:00:00.140
37:2c14 0 days 0:00:00.124
23:2618 0 days 0:00:00.109
2:1ba0 0 days 0:00:00.109
25:1db8 0 days 0:00:00.093
20:20f0 0 days 0:00:00.093
17:29ac 0 days 0:00:00.093
0:1494 0 days 0:00:00.078
7:8d4 0 days 0:00:00.062
32:248c 0 days 0:00:00.046
3:2af8 0 days 0:00:00.046
31:ee4 0 days 0:00:00.031
8:2a98 0 days 0:00:00.031
38:2f3c 0 days 0:00:00.015
27:278c 0 days 0:00:00.015
16:2a70 0 days 0:00:00.015
15:24a8 0 days 0:00:00.015
39:215c 0 days 0:00:00.000
36:2088 0 days 0:00:00.000
29:53c 0 days 0:00:00.000
28:26e0 0 days 0:00:00.000
26:2960 0 days 0:00:00.000
19:2a10 0 days 0:00:00.000
14:2208 0 days 0:00:00.000
13:2bcc 0 days 0:00:00.000
12:2a6c 0 days 0:00:00.000
9:1a38 0 days 0:00:00.000
6:1200 0 days 0:00:00.000
4:2620 0 days 0:00:00.000
Когда я выполняю g
продолжить процесс, я получаю
0:039> g
(2944.1d6c): Break instruction exception - code 80000003 (first chance)
mscorlib_ni+0x367240:
000007fe`f8337240 cc int 3
и процесс остается приостановленным. Как продолжить?
Марк, это было очень полезно, спасибо. –