Как сохранить точки останова между сеансами, используя cdb (командная строка windbg)? - PullRequest
1 голос
/ 23 марта 2020

Моя цель - сохранить контрольные точки между сеансами отладки в CDB (версия windbg для командной строки). Я могу правильно перезапустить, используя .restart, однако я всегда теряю свои контрольные точки (я устанавливаю свои контрольные точки с помощью команд bu и / или bm.

Возможно ли это даже при использовании просто cdb?

1 Ответ

1 голос
/ 23 марта 2020

cdb невозможен, используйте .bpcmds перед .restart и сохраните в каком-либо месте и повторно используйте его после перезапуска

для windbg вы можете использовать рабочие пространства для сохранения точек останова между сеансами

редактировать демонстрацию

предположим, что у вас есть эти точки останова

0:000> bl
 0 e 00007ff6`0fc4109c     0001 (0001)  0:**** calc!wWinMain
 1 e 00007ff6`0fc41820     0001 (0001)  0:**** calc!wWinMainCRTStartup
 2 e 00007ff6`0fc41960     0001 (0001)  0:**** calc!matherr
 3 e 00007ffb`f033d880     0001 (0001)  0:**** ntdll!NtCreateTimer2
 4 e 00007ffb`f033d6a0     0001 (0001)  0:**** ntdll!NtCreateNamedPipeFile
 5 e 00007ffb`f02a2000     0001 (0001)  0:**** ntdll!RtlDefaultNpAcl+0x190
 6 e 00007ffb`ede53000     0001 (0001)  0:**** KERNELBASE!EnumDynamicTimeZoneInformation+0x60

.bpcmds покажет вам, как их установить (последние два - это биты без символа на основе rva)

и если вы их установили используя bp, они могут не работать в следующий раз
из-за ASLR, так как модуль может быть загружен по другому адресу

0:000> .bpcmds
bu0 calc!wWinMain;
bu1 calc!wWinMainCRTStartup;
bu2 calc!wsetargv;
bu3 ntdll!ZwCreateTimer2;
bu4 ntdll!ZwCreateNamedPipeFile;
bu5 ntdll+2000;
bu6 kernelbase+3000;
0:000>  

копировать вставить в некоторое пустое пространство и после .restart скопировать вставить обратно в консоль cdb

вы можете использовать .logopen {some_path_to_some_textfile} do .bpcmds и .restart также

, в этом случае вы можете скопировать, вставить bps из файла журнала и не нужно снова откройте файл журнала, поскольку windbg / cdb не закрывает файл журнала на .restart

.

...