views:

13

answers:

0

I have a DLL defining some COM object, loaded by an exe.

when I start debuging the DLL, it works fine until I stop on my DLL (by breakpoint or ASSERT): after a continue, I can't no more stop on the DLL.

If I open the 'module' dialog, I can see than the debugger think to have rebased the dll, but if I use processexplorer, I see that the real dll base have not changed: so the debugger don't match the code, so breakpoint are no more working.

For example, assume that the A.exe use COM object defioned on B.dll. When I start debuging, I open the 'module' dialog and see the B.dll with base=0x00600000. Process explorer display same base. Then I stop on a breakoint on B.dll do some step, and continue. If I open the module dialog, it said than B.dll base=0x70000000 while processexplorer said base=0x00600000

Seems to be related to edit&continue than always try to rebase the dll, even if nothing changed, and the rebase failed on win 7.

So I tryed to:

1) completly disable the edit&continue to avoid this rebase: used information from http://msdn.microsoft.com/en-us/library/aa260823%28VS.60%29.aspx: enabling trace by HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Debug\ENCTraceLevel=3 show that the edit&continue is always used, even if disable

2) use a fixed base for B.dll, with /base:"0x20000000" /fixed: vc6 debugger still try to rebase it

3) try to allow the rebase working on win7: I tryed to disable the UAC, run vc6 as admin ect... but nothing worked

Any other suggestion to try to fix this pb?

Thanks