如何在 windbg 中打印当前源代码行?

How to print the current source line in windbg?

我想知道是否可以在 windbg 中显示当前源代码行?

现在我可以单步执行代码并在每次单步执行代码时在当前行前后显示 5 行。这很好,但是如果有一个命令可以按需打印当前源代码行而不是跳到下一行就更好了。

如果要打印单个源代码行,请使用 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[]) {