c++ - OllyDbg 无法调试visual studio exe

标签 c++ debugging assembly ollydbg seh

我刚刚用这个简单的代码创建了一个新的 vc++ exe:

#include<stdio.h>
#include<string.h>
#include<windows.h>

int ExceptionHandler(void);
int main(int argc,char *argv[]){

char temp[512];

printf("Application launched");

try 
{

  throw "error";

} 
catch (... )
{
    ExceptionHandler();
}
return 0;
}
int ExceptionHandler(void)
{
    printf("Exception");
    return 0;
}

该应用程序非常简单,并创建了一个依赖于 kernel32.dll 和 MSVCR100D.dll 的 exe 文件。

当我尝试将它导入并调试到 OllyDbg 中时(我只是想在堆栈窗口中查看 SEH 链)它说“模块‘testseh’在代码之外有入口点(如 PE header 中指定的那样)。也许此文件为自解压或自修改,设置断点时请注意!并且没有执行任何代码,直接跳转到ntdll.dll crash部分(其实exe是crash了但是我没法一步步执行printf指令)

为什么会有这种行为?该 exe 既不依赖 CLI 也不依赖 CLR,我是不是错过了什么?

最佳答案

从 olly 获取的编译器异常是关键的(错误设置)

关于c++ - OllyDbg 无法调试visual studio exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5779390/

相关文章:

c - 用Visual C++编译器解释空C `main`函数奇怪的汇编

c++ - cin.getline 不使用 switch 语句

objective-c - 你如何像 visual studio 立即窗口一样在 xcode 中观察或评估表达式?

debugging - 浏览器链接总是要求 "Do you want to stop debugging"

javascript - 如何使用IntelliJ IDEA调试器调试Nashorn JavaScript?

c - AMD64——nopw 汇编指令?

assembly - 从 DOS 启动 MBR

C++ 日历,在我看到输出之前关闭

c++ - 需要代码度量。最佳代码中 h 文件中的 LOC 与 cpp 文件中的 LOC 的比率

C++:不能 static_cast 从 double* 到 int*