Re: DebugBreak()
- From: "Peter" <Peter@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 5 May 2005 00:21:02 -0700
Hi Oleg,
you helped me, tip number 3 is functional :-)
Problem was, that COM server was run in other account
that interactive user, so debugger could not be started.
Answer on idea of manual attaching to process and then inserting breakpoints:
I use also this way but this time it's not usable because I must to debug
initialization, no process to attach, only way to use it is insert some
Sleep(10000)
and quick attach and insert breakpoint - unconfortable.
But I have more question relating to topics we discussed:
1. How to disable catching DebugBreak() by my proxy/stub ?
I'd like to catch it in debugger, not in proxy/stub.
2. How to set "interactive with desktop" property of out-of-process COM ?
(Not system service COM, but only *.exe out-of process COM)
3. Subkey of regkey "Image File Execution Options" - Among my default subkeys
I see *.exe and one *.dll - setup32.dll. But when I try to insert my *.dll,
it was not functional, debugger was not invoked. By your experience - did you
use sometimes dll key for starting debugger ?
Thanks !
Peter
"Oleg Starodumov" wrote:
>
> > No one of three tips helps.
> >
> > I work with VS2003 on W2K3 server+SP1.
> > My COM app works this way:
> > system service starts other COM exe server.
> > This COM server then uses several in-process COMs.
> > I have place DebugBreak() in COM server.
> >
> > When after starting my App meets DebugBreak() in COM server,
> > debugger is not invoked and error
> > 0x80010105 is displayed.
> > (RPC_E_SERVERFAULT)
> > How to set system to invoke debugger on this ?
> >
> > Tip 1. - nothing changes, debuger is not invoked, no message displayed.
>
> That's not actually a tip, it's a behavior that you cannot change.
> I haven't tried the workaround suggested in KB article, so cannot
> say anything about it. Tips 2 and 3 have always been good enough
> for me :)
>
> > Tip 2. - nothing changes
>
> What have you actually done?
>
> It is the simplest approach - attach the debugger to your service (e.g., using
> DebugBreak, or manually) and then step into COM server methods.
>
> > Tip 3. - After starting service message appears:
> > 0x80070002
> > (The system cannot find the file specified)
> > COM server is placed in path where every dirname has less than 8 chars.
> > But debugger is onvoked when I register server with "exename /regserver" -
> > success !. But why error 0x80070002 is displayed when this COM server is
> > started ?
> >
>
> It is probably related to the path to devenv.exe. In "Debugger" setting, specify
> the path to devenv.exe (use short names if possible).
>
> Also make sure that your COM server will be started in the interactive context,
> so that the debugger will also start there and will be able to show the GUI
> to you.
>
> Oleg
>
>
>
>
.
- Follow-Ups:
- Re: DebugBreak()
- From: Ivan Brugiolo [MSFT]
- Re: DebugBreak()
- References:
- DebugBreak()
- From: Peter
- Re: DebugBreak()
- From: Oleg Starodumov
- Re: DebugBreak()
- From: Peter
- Re: DebugBreak()
- From: Oleg Starodumov
- DebugBreak()
- Prev by Date: Re: System-wide Hooking to catch Postmessages unreliable
- Next by Date: Re: DebugBreak()
- Previous by thread: Re: DebugBreak()
- Next by thread: Re: DebugBreak()
- Index(es):
Relevant Pages
|