Vitaliy Margolen wrote:
ChangeLog: ntdll: Implement few Dbg* functions. kernel32: Use new Dbg* functions instead of server calls.
status = DbgUiDebugActiveProcess( hProc );
status = DbgUiStopDebugging( hProc );
- if (self) DbgBreakPoint();
I wonder if we shouldn't use NtDbgActiveProcess, NtRemoveProcessDebug instead. A+
Sunday, December 18, 2005, 1:04:33 PM, Eric Pouech wrote:
Vitaliy Margolen wrote:
ChangeLog: ntdll: Implement few Dbg* functions. kernel32: Use new Dbg* functions instead of server calls.
status = DbgUiDebugActiveProcess( hProc );
status = DbgUiStopDebugging( hProc );
- if (self) DbgBreakPoint();
I wonder if we shouldn't use NtDbgActiveProcess, NtRemoveProcessDebug instead.
From what I could find with Google, it looks like: DbgUiDebugActiveProcess is using NtDbgActiveProcess DbgUiStopDebugging is using NtRemoveProcessDebug
The problem here is that we need handle to the debug object which we don't have and don't have. And I haven't found how to get a handle to it either.
Vitaliy.
The problem here is that we need handle to the debug object which we don't have and don't have. And I haven't found how to get a handle to it either.
NtCreateDebugObject we already have a context object (for debugger) in server, it shouldn't be too hard to implement it that way. A+
Sunday, December 18, 2005, 2:06:55 PM, Eric Pouech wrote:
The problem here is that we need handle to the debug object which we don't have and don't have. And I haven't found how to get a handle to it either.
NtCreateDebugObject we already have a context object (for debugger) in server, it shouldn't be too hard to implement it that way.
Well sure but how to open an existent one? To stop/detach debugger? And what I meant is that what ever we do inside is a Wine's thing anyway. The functions I used seemed more suited to be called from kernel32. As well as the names "Ui" suggest. Which I take means "User Interface".
Vitaliy.
Vitaliy Margolen wrote:
Sunday, December 18, 2005, 2:06:55 PM, Eric Pouech wrote:
The problem here is that we need handle to the debug object which we don't have and don't have. And I haven't found how to get a handle to it either.
NtCreateDebugObject we already have a context object (for debugger) in server, it shouldn't be too hard to implement it that way.
Well sure but how to open an existent one?
why would you need it ? I assume kernel32 (or the caller) stores this handle as a global variable (or in the PEB...)
To stop/detach debugger?
NtDebugActiveProcess NtRemoveProcessDebug
And what I meant is that what ever we do inside is a Wine's thing anyway. The functions I used seemed more suited to be called from kernel32. As well as the names "Ui" suggest. Which I take means "User Interface".
IMO, the Ui ones seem to be rather old (NT4 or something) whereas the ones I'm talking about are more recent (XP), but seem better defined (API wise). For example, only XP version seems to provide the wait for debug object and continue APIs. That's why it seems to me more interesting to me that we move to the XP flavor. A+
Eric Pouech wrote:
IMO, the Ui ones seem to be rather old (NT4 or something) whereas the ones I'm talking about are more recent (XP), but seem better defined (API wise). For example, only XP version seems to provide the wait for debug object and continue APIs. That's why it seems to me more interesting to me that we move to the XP flavor.
actually, you could implement it on top of Ui flavor as well we'll have to dig deeper to tell the differences A+
Eric Pouech wrote:
Eric Pouech wrote:
IMO, the Ui ones seem to be rather old (NT4 or something) whereas the ones I'm talking about are more recent (XP), but seem better defined (API wise). For example, only XP version seems to provide the wait for debug object and continue APIs. That's why it seems to me more interesting to me that we move to the XP flavor.
actually, you could implement it on top of Ui flavor as well we'll have to dig deeper to tell the differences A+
/me putting the shovel away after some digging
the DbgUi* functions are the one called from kernel32, but refer to a single debug object, stored in the TEB in DbgSSReserved array They call the 'simple' Dbg functions, which allow a given debugger thread to handle one than a debugging object (compared to the DbgUi ones). we can safely start by implementing the DbgUi functions in ntdll. If needed we can move later one to the Dbg ones.