Debugging 如何调试非法指令异常?

Debugging 如何调试非法指令异常?,debugging,dbgeng,Debugging,Dbgeng,在ASDumpAnalyzer.exe中的0x037ba4f4(dbgeng.dll)处尝试使用dbgeng from:First chance异常时,我遇到此异常:0xC000001D:非法指令。我想知道如何调试这个 它正在抛出汇编指令vmcpuid。当我跳过该指令时,代码按预期工作 堆栈跟踪: dbgeng.dll!X86IsVirtualMachine() + 0x44 bytes dbgeng.dll!LiveUserDebugServices::GetTargetInfo() +

在ASDumpAnalyzer.exe中的0x037ba4f4(dbgeng.dll)处尝试使用dbgeng from:First chance异常时,我遇到此异常:0xC000001D:非法指令。我想知道如何调试这个

它正在抛出汇编指令vmcpuid。当我跳过该指令时,代码按预期工作

堆栈跟踪:

dbgeng.dll!X86IsVirtualMachine()  + 0x44 bytes
dbgeng.dll!LiveUserDebugServices::GetTargetInfo()  + 0x95 bytes
dbgeng.dll!LiveUserTargetInfo::InitFromServices()  + 0x95 bytes
dbgeng.dll!LiveUserTargetInfo::WaitForEvent()  + 0x4f bytes
dbgeng.dll!WaitForAnyTarget()  + 0x5f bytes
dbgeng.dll!RawWaitForEvent()  + 0x2ae bytes
dbgeng.dll!DebugClient::WaitForEvent()  + 0xb0 bytes
[Managed to Native Transition]
mdbglib.dll!MS::Debuggers::DbgEng::DebugControl::WaitForEvent(unsigned int timeout = 0) Line 107 + 0x38 bytes   C++
mdbglib.dll!MS::Debuggers::DbgEng::Debuggee::WaitForEvent(unsigned int timeout = 0) Line 365    C++
ASDumpAnalyzer.exe!ASDumpAnalyzer.Program.WriteMemoryDump() Line 51 + 0xd bytes C#
ASDumpAnalyzer.exe!ASDumpAnalyzer.Program.Main() Line 21 + 0x5 bytes    C#
mscoree.dll!__CorExeMain@0()  + 0x34 bytes
kernel32.dll!_BaseProcessStart@4()  + 0x23 bytes

你有没有试过不打破第一次机会的例外?我打赌X86IsVirtualMachine在VMCPUID周围有一个
\uu try
/
\uuu最后
块。。。因为它不是有效的指令,所以您可能没有在VM下运行。

您是否尝试过在第一次出现异常时不中断?我打赌X86IsVirtualMachine在VMCPUID周围有一个
\uu try
/
\uuu最后
块。。。由于它不是有效的指令,您可能没有在VM下运行。

您是否尝试过在第一次出现异常时不中断?我打赌X86IsVirtualMachine在VMCPUID周围有一个u-try/u-finally块。。。因为它不是有效的指令,所以你可能没有在虚拟机下运行。是的,这是我的问题。谢谢你指出我的错误。如果你提交一个答案,我会把你的作为答案。你有没有尝试过不打破第一次机会的例外?我打赌X86IsVirtualMachine在VMCPUID周围有一个u-try/u-finally块。。。因为它不是有效的指令,所以你可能没有在虚拟机下运行。是的,这是我的问题。谢谢你指出我的错误。如果你提交答案,我会把你的作为答案。