C++ 调试延迟加载dll
我正在使用Eclipse和Cygwin GCC创建一个DLL文件。这个DLL然后由我没有源代码的第三方应用程序执行。我只是运行它,有时它会从我的DLL执行一个函数 是否可以使用Eclipse将Cygwin GDB附加到第三方进程以调试我自己的DLL文件? 据我所知,VisualStudio可以将其调试器附加到进程。VisualStudio能够在开箱即用的情况下做我想要的事情吗? Eclipse也能实现这一点吗C++ 调试延迟加载dll,c++,debugging,dll,eclipse-cdt,remote-debugging,C++,Debugging,Dll,Eclipse Cdt,Remote Debugging,我正在使用Eclipse和Cygwin GCC创建一个DLL文件。这个DLL然后由我没有源代码的第三方应用程序执行。我只是运行它,有时它会从我的DLL执行一个函数 是否可以使用Eclipse将Cygwin GDB附加到第三方进程以调试我自己的DLL文件? 据我所知,VisualStudio可以将其调试器附加到进程。VisualStudio能够在开箱即用的情况下做我想要的事情吗? Eclipse也能实现这一点吗 请帮助。回答您的部分问题:是的,Visual Studio可以在开箱即用的情况下做您想
请帮助。回答您的部分问题:是的,Visual Studio可以在开箱即用的情况下做您想要做的事情。。。前提是在执行代码之前附加到流程。我不是Eclipse的超级粉丝,所以我不使用它,也不能告诉您它是否有能力连接到已经运行的进程 无论您使用的是什么调试器。。。由于延迟加载,您可以在入口点添加如下内容:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
#if ALERT_ATTACH_DEBUGGER
::MessageBox("Attach debugger now!", "Debug Alert", MB_OK);
#endif
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
当您的消息框出现时,请在列表中找到主机进程并附加。。。在这之后,您在代码中设置的任何断点都将起作用。回答您的部分问题:是的,Visual Studio可以在开箱即用的情况下做您想要做的事情。。。前提是在执行代码之前附加到流程。我不是Eclipse的超级粉丝,所以我不使用它,也不能告诉您它是否有能力连接到已经运行的进程 无论您使用的是什么调试器。。。由于延迟加载,您可以在入口点添加如下内容:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
#if ALERT_ATTACH_DEBUGGER
::MessageBox("Attach debugger now!", "Debug Alert", MB_OK);
#endif
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
当您的消息框出现时,请在列表中找到主机进程并附加。。。在此之后,您在代码中设置的任何断点都将起作用。Thx。我会这样尝试,但仍然希望有一个Eclipse的方式来做。Thx。我会这样尝试,但仍然希望有一个Eclipse的方式来做。