相关疑难解决方法(0)

是否有Windbg命令来确定进程是32位还是64位?

是否有Windbg/NTSD命令告诉我在实时调试会话中我附加的进程是32位还是64位?

你能告诉我两个:

  1. 一个不受管理的过程?

  1. 有管理的?

对于托管的,我可以在C#中以编程方式找到它,但我仍然想知道是否有针对此的Windbg命令.

UPDATE

我正在调试的目标进程是Microsoft Word(winword.exe).Office版本是2016年,但我不确定它是32位还是64位二进制文​​件.以下是一些观察结果:

  1. 目标位置是C:\ Program Files(x86)\ Microsoft Office\root\Office16\WinWord.exe

  2. pipe(|)命令只告诉我PID,无论进程是否附加到调试器以及加载映像的路径(如上面的#1所述).

  3. 我在64位机器上调试它.因此,r显示64位寄存器.

  4. 在没有崩溃的情况下连接到一个实时,健康的进程(我刚刚打开MS Word并说"Attach to Process"),当前thread(k)的callstack 读取wow64cpu!CpupSyscallStub+0x9最顶层的调用.这个#1表明该过程是一个32位进程.

命令已经尝试过

  1. !peb(Process Environment Block):告诉我们处理器架构,而不是正在调试的进程的位数.
  2. |
  3. vertarget
  4. r(表示我的处理器的寄存器大小,并没有告诉我该过程)

但我想知道是否有办法找出答案.

debugging windbg sos

5
推荐指数
1
解决办法
1158
查看次数

标签 统计

debugging ×1

sos ×1

windbg ×1