0
votes

I googled a lot but no answer found. My project is a plugin of a .Net application.

The project was started 2 years ago on WinXp 32bit platform. A 32bit COM component was used for some reasons. Because I have the source codes, I can debug into the COM component freely. Everything is fantastic at that time.

At the beginning of this year, my project is upgrading to x64 because of memory benefit. And the x64 version of the COM component is also ready. Everything works fine except debugging.

Now I can't debug into the COM dlls anymore. There is no any COM dll or interop dll listed in the Debug\Windows\Modules window. Thus, I can't specify the symbol directory for dll.

I know there is no mix mode support for debugging. So When I attach the exe, I select "Native".

I tried VS 2005, VS 2008 and VS 2010, all of them give me the same issue. Then I thought may be it is because x64. So I use the old 32 bit code which was debugged fine on WinXP to try again. But I still can't debug either.

Any idea? Is this because of the win7 platform? Or if I need to add some entries in the exe's config file?

Thanks in advance.

1
Right, no mixed-mode support. Otherwise not a problem at all when you select native debugging. There isn't anything in the question to provide a hint what might be wrong, you didn't even describe seeing the DLL getting loaded and saying what exactly you see when you set a breakpoint.Hans Passant
The COM dlls are correctly loaded, I can see it in ProcessExplorer. However, I can't see them in the modules window of VS debugger. Of course, the breakpoints in the source codes of COM Dll can't be hitted.Kelvin
Well, that makes little sense of course. Unless the debugger is actually operating in managed mode in which case it doesn't list native modules. Quick double-check is available by verifying that you see kernel32.dll in the Modules list.Hans Passant
Thanks, Hans. I checked it just now. The Kernel32.dll is in the modules list, as well as MFC90.dll, etc. But still no my COM dlls.Kelvin

1 Answers

0
votes

Perhaps, I should ask in this way:

What are the rules for the debugger to decide which module should be in the module list? If you compare the module list between ProcessExplorer and VS, you would find these two are not the same.