Как напечатать текущую исходную строку в windbg? - PullRequest
0 голосов
/ 21 марта 2020

Мне было интересно, возможно ли отобразить текущую строку источника в windbg?

Сейчас я могу пошагово просмотреть код и отображать 5 строк до и после текущей строки каждый раз, когда я прохожу через код. Это замечательно, но было бы неплохо, если бы была команда для печати текущей строки по требованию вместо перехода к следующей строке.

1 Ответ

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

, если вы хотите напечатать одну строку источника, используйте lsp
Значение по умолчанию: 20 (0x14)

> lsp -a 1
WARNING: Source line display is disabled
At the prompt, display 0 source lines before and 1 after
For lsa commands, display 0 source lines before
For ls and lsa commands, display 1 source lines

, теперь используйте lsa , где. обозначает текущий Eip / Rip

0:000:x86> lsa .
>   28: void main(int argc, char *argv[]) {

или предоставляет адрес

0:000:x86> lsa @$ip+42
>   30:     SymInitialize(hProcess, NULL, FALSE);

, вы также можете указать исходную строку для lsa

0:000> lsa `symtype!symtype.cpp:16`
>   16:     if (maxcmplen == pSymInfo->NameLen) {
0:000> lsa `symtype!symtype.cpp:28`
>   28: void main(int argc, char *argv[]) {
...