Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
e17d1a36
Commit
e17d1a36
authored
May 08, 2001
by
Francois Gouget
Committed by
Alexandre Julliard
May 08, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Print the tid in the first column when +tid is specified.
parent
f30b0351
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
55 additions
and
33 deletions
+55
-33
debugtools.c
dlls/ntdll/debugtools.c
+5
-1
ntdll.spec
dlls/ntdll/ntdll.spec
+1
-1
relay.c
if1632/relay.c
+10
-6
pe_image.c
loader/pe_image.c
+6
-3
relay386.c
relay32/relay386.c
+11
-8
snoop.c
relay32/snoop.c
+9
-6
process.c
scheduler/process.c
+3
-2
thread.c
scheduler/thread.c
+2
-1
winproc.c
windows/winproc.c
+8
-5
No files found.
dlls/ntdll/debugtools.c
View file @
e17d1a36
...
...
@@ -15,6 +15,8 @@
#include "winnt.h"
#include "wtypes.h"
DECLARE_DEBUG_CHANNEL
(
tid
);
/* ---------------------------------------------------------------------- */
struct
debug_info
...
...
@@ -248,8 +250,10 @@ int wine_dbg_log(enum __DEBUG_CLASS cls, const char *channel,
int
ret
=
0
;
va_start
(
valist
,
format
);
if
(
TRACE_ON
(
tid
))
ret
=
wine_dbg_printf
(
"%08lx:"
,
(
DWORD
)
NtCurrentTeb
()
->
tid
);
if
(
cls
<
__DBCL_COUNT
)
ret
=
wine_dbg_printf
(
"%s:%s:%s "
,
classes
[
cls
],
channel
+
1
,
function
);
ret
+
=
wine_dbg_printf
(
"%s:%s:%s "
,
classes
[
cls
],
channel
+
1
,
function
);
if
(
format
)
ret
+=
wine_dbg_vprintf
(
format
,
valist
);
va_end
(
valist
);
...
...
dlls/ntdll/ntdll.spec
View file @
e17d1a36
...
...
@@ -5,7 +5,7 @@ debug_channels (aspi atom cdrom console ddraw debug delayhlp dll dosfs dosmem
file fixup global heap int int10 int16 int17 int19 int21 int31
io loaddll local module ntdll process profile reg relay resource
segment seh selector server snoop string system tape task thread
thunk timer toolhelp ver virtual vxd win32)
thunk ti
d ti
mer toolhelp ver virtual vxd win32)
#note that the Zw... functions are alternate names for the
#Nt... functions. (see www.sysinternals.com for details)
...
...
if1632/relay.c
View file @
e17d1a36
...
...
@@ -154,7 +154,7 @@ void RELAY_DebugCallFrom16( CONTEXT86 *context )
args
=
BUILTIN_GetEntryPoint16
(
frame
,
funstr
,
&
ordinal
);
if
(
!
args
)
return
;
/* happens for the two snoop register relays */
if
(
!
RELAY_ShowDebugmsgRelay
(
funstr
))
return
;
DPRINTF
(
"
Call %s("
,
funstr
);
DPRINTF
(
"
%08lx:Call %s("
,
GetCurrentThreadId
()
,
funstr
);
VA_START16
(
args16
);
usecdecl
=
(
*
args
==
'c'
);
...
...
@@ -274,7 +274,7 @@ void RELAY_DebugCallFrom16Ret( CONTEXT86 *context, int ret_val )
args
=
BUILTIN_GetEntryPoint16
(
frame
,
funstr
,
&
ordinal
);
if
(
!
args
)
return
;
if
(
!
RELAY_ShowDebugmsgRelay
(
funstr
))
return
;
DPRINTF
(
"
Ret %s() "
,
funstr
);
DPRINTF
(
"
%08lx:Ret %s() "
,
GetCurrentThreadId
()
,
funstr
);
if
(
memcmp
(
args
+
2
,
"long_"
,
5
)
==
0
)
{
...
...
@@ -324,7 +324,8 @@ void RELAY_DebugCallTo16( LPVOID target, int nb_args, BOOL reg_func )
{
CONTEXT86
*
context
=
(
CONTEXT86
*
)
target
;
DPRINTF
(
"CallTo16(func=%04lx:%04x,ds=%04lx"
,
DPRINTF
(
"%08lx:CallTo16(func=%04lx:%04x,ds=%04lx"
,
GetCurrentThreadId
(),
context
->
SegCs
,
LOWORD
(
context
->
Eip
),
context
->
SegDs
);
while
(
nb_args
--
)
DPRINTF
(
",0x%04x"
,
*--
stack16
);
DPRINTF
(
") ss:sp=%04x:%04x
\n
"
,
SELECTOROF
(
teb
->
cur_stack
),
...
...
@@ -336,7 +337,8 @@ void RELAY_DebugCallTo16( LPVOID target, int nb_args, BOOL reg_func )
}
else
{
DPRINTF
(
"CallTo16(func=%04x:%04x,ds=%04x"
,
DPRINTF
(
"%08lx:CallTo16(func=%04x:%04x,ds=%04x"
,
GetCurrentThreadId
(),
HIWORD
(
target
),
LOWORD
(
target
),
SELECTOROF
(
teb
->
cur_stack
)
);
while
(
nb_args
--
)
DPRINTF
(
",0x%04x"
,
*--
stack16
);
DPRINTF
(
") ss:sp=%04x:%04x
\n
"
,
SELECTOROF
(
teb
->
cur_stack
),
...
...
@@ -356,7 +358,8 @@ void RELAY_DebugCallTo16Ret( BOOL reg_func, int ret_val )
if
(
!
reg_func
)
{
DPRINTF
(
"CallTo16() ss:sp=%04x:%04x retval=0x%08x
\n
"
,
DPRINTF
(
"%08lx:RetFrom16() ss:sp=%04x:%04x retval=0x%08x
\n
"
,
GetCurrentThreadId
(),
SELECTOROF
(
NtCurrentTeb
()
->
cur_stack
),
OFFSETOF
(
NtCurrentTeb
()
->
cur_stack
),
ret_val
);
}
...
...
@@ -364,7 +367,8 @@ void RELAY_DebugCallTo16Ret( BOOL reg_func, int ret_val )
{
CONTEXT86
*
context
=
(
CONTEXT86
*
)
ret_val
;
DPRINTF
(
"CallTo16() ss:sp=%04x:%04x
\n
"
,
DPRINTF
(
"%08lx:RetFrom16() ss:sp=%04x:%04x
\n
"
,
GetCurrentThreadId
(),
SELECTOROF
(
NtCurrentTeb
()
->
cur_stack
),
OFFSETOF
(
NtCurrentTeb
()
->
cur_stack
));
DPRINTF
(
" AX=%04x BX=%04x CX=%04x DX=%04x BP=%04x SP=%04x
\n
"
,
...
...
loader/pe_image.c
View file @
e17d1a36
...
...
@@ -731,10 +731,13 @@ BOOL PE_InitDLL( HMODULE module, DWORD type, LPVOID lpReserved )
(
nt
->
OptionalHeader
.
AddressOfEntryPoint
))
{
DLLENTRYPROC
entry
=
(
void
*
)((
char
*
)
module
+
nt
->
OptionalHeader
.
AddressOfEntryPoint
);
TRACE_
(
relay
)(
"CallTo32(entryproc=%p,module=%08x,type=%ld,res=%p)
\n
"
,
entry
,
module
,
type
,
lpReserved
);
if
(
TRACE_ON
(
relay
))
DPRINTF
(
"%08lx:Call PE DLL (proc=%p,module=%08x,type=%ld,res=%p)
\n
"
,
GetCurrentThreadId
(),
entry
,
module
,
type
,
lpReserved
);
retv
=
entry
(
module
,
type
,
lpReserved
);
if
(
TRACE_ON
(
relay
))
DPRINTF
(
"%08lx:Ret PE DLL (proc=%p,module=%08x,type=%ld,res=%p) retval=%x
\n
"
,
GetCurrentThreadId
(),
entry
,
module
,
type
,
lpReserved
,
retv
);
}
return
retv
;
...
...
relay32/relay386.c
View file @
e17d1a36
...
...
@@ -182,9 +182,9 @@ static LONGLONG RELAY_CallFrom32( int ret_addr, ... )
get_entry_point
(
buffer
,
relay
);
DPRINTF
(
"
Call %s("
,
buffer
);
DPRINTF
(
"
%08lx:Call %s("
,
GetCurrentThreadId
()
,
buffer
);
RELAY_PrintArgs
(
args
,
nb_args
,
relay
->
argtypes
);
DPRINTF
(
") ret=%08x
tid=%08lx
\n
"
,
ret_addr
,
GetCurrentThreadId
()
);
DPRINTF
(
") ret=%08x
\n
"
,
ret_addr
);
ret64
=
(
relay
->
argtypes
&
0x80000000
)
&&
(
nb_args
<
16
);
if
(
relay
->
ret
==
0xc3
)
/* cdecl */
...
...
@@ -274,11 +274,13 @@ static LONGLONG RELAY_CallFrom32( int ret_addr, ... )
}
}
if
(
ret64
)
DPRINTF
(
"Ret %s() retval=%08x%08x ret=%08x tid=%08lx
\n
"
,
buffer
,
(
UINT
)(
ret
>>
32
),
(
UINT
)
ret
,
ret_addr
,
GetCurrentThreadId
()
);
DPRINTF
(
"%08lx:Ret %s() retval=%08x%08x ret=%08x
\n
"
,
GetCurrentThreadId
(),
buffer
,
(
UINT
)(
ret
>>
32
),
(
UINT
)
ret
,
ret_addr
);
else
DPRINTF
(
"Ret %s() retval=%08x ret=%08x tid=%08lx
\n
"
,
buffer
,
(
UINT
)
ret
,
ret_addr
,
GetCurrentThreadId
()
);
DPRINTF
(
"%08lx:Ret %s() retval=%08x ret=%08x
\n
"
,
GetCurrentThreadId
(),
buffer
,
(
UINT
)
ret
,
ret_addr
);
return
ret
;
}
...
...
@@ -320,7 +322,7 @@ void WINAPI RELAY_DoCallFrom32Regs( CONTEXT86 *context )
get_entry_point
(
buffer
,
relay
);
DPRINTF
(
"
Call %s("
,
buffer
);
DPRINTF
(
"
%08lx:Call %s("
,
GetCurrentThreadId
()
,
buffer
);
RELAY_PrintArgs
(
args
,
nb_args
,
relay
->
argtypes
);
DPRINTF
(
") ret=%08lx fs=%04lx
\n
"
,
context
->
Eip
,
context
->
SegFs
);
...
...
@@ -364,7 +366,8 @@ void WINAPI RELAY_DoCallFrom32Regs( CONTEXT86 *context )
assert
(
FALSE
);
}
DPRINTF
(
"Ret %s() retval=%08lx ret=%08lx fs=%04lx
\n
"
,
DPRINTF
(
"%08lx:Ret %s() retval=%08lx ret=%08lx fs=%04lx
\n
"
,
GetCurrentThreadId
(),
buffer
,
context
->
Eax
,
context
->
Eip
,
context
->
SegFs
);
DPRINTF
(
" eax=%08lx ebx=%08lx ecx=%08lx edx=%08lx esi=%08lx edi=%08lx
\n
"
,
...
...
relay32/snoop.c
View file @
e17d1a36
...
...
@@ -322,7 +322,7 @@ void WINAPI SNOOP_DoEntry( CONTEXT86 *context )
context
->
Eip
=
(
DWORD
)
fun
->
origfun
;
DPRINTF
(
"
CALL %s.%ld: %s("
,
dll
->
name
,
ordinal
,
fun
->
name
);
DPRINTF
(
"
%08lx:CALL %s.%ld: %s("
,
GetCurrentThreadId
()
,
dll
->
name
,
ordinal
,
fun
->
name
);
if
(
fun
->
nrofargs
>
0
)
{
max
=
fun
->
nrofargs
;
if
(
max
>
16
)
max
=
16
;
for
(
i
=
0
;
i
<
max
;
i
++
)
...
...
@@ -334,7 +334,7 @@ void WINAPI SNOOP_DoEntry( CONTEXT86 *context )
ret
->
args
=
HeapAlloc
(
GetProcessHeap
(),
0
,
16
*
sizeof
(
DWORD
));
memcpy
(
ret
->
args
,(
LPBYTE
)(
context
->
Esp
+
4
),
sizeof
(
DWORD
)
*
16
);
}
DPRINTF
(
") ret=%08lx
tid=%08lx
\n
"
,
(
DWORD
)
ret
->
origreturn
,
GetCurrentThreadId
()
);
DPRINTF
(
") ret=%08lx
\n
"
,(
DWORD
)
ret
->
origreturn
);
}
...
...
@@ -353,18 +353,21 @@ void WINAPI SNOOP_DoReturn( CONTEXT86 *context )
if
(
ret
->
args
)
{
int
i
,
max
;
DPRINTF
(
"RET %s.%ld: %s("
,
ret
->
dll
->
name
,
ret
->
ordinal
,
ret
->
dll
->
funs
[
ret
->
ordinal
].
name
);
DPRINTF
(
"%08lx:RET %s.%ld: %s("
,
GetCurrentThreadId
(),
ret
->
dll
->
name
,
ret
->
ordinal
,
ret
->
dll
->
funs
[
ret
->
ordinal
].
name
);
max
=
ret
->
dll
->
funs
[
ret
->
ordinal
].
nrofargs
;
if
(
max
>
16
)
max
=
16
;
for
(
i
=
0
;
i
<
max
;
i
++
)
DPRINTF
(
"%s%s"
,
SNOOP_PrintArg
(
ret
->
args
[
i
]),(
i
<
max
-
1
)
?
","
:
""
);
DPRINTF
(
") retval = %08lx ret=%08lx
tid=%08lx
\n
"
,
context
->
Eax
,
(
DWORD
)
ret
->
origreturn
,
GetCurrentThreadId
()
);
DPRINTF
(
") retval = %08lx ret=%08lx
\n
"
,
context
->
Eax
,
(
DWORD
)
ret
->
origreturn
);
HeapFree
(
GetProcessHeap
(),
0
,
ret
->
args
);
ret
->
args
=
NULL
;
}
else
DPRINTF
(
"RET %s.%ld: %s() retval = %08lx ret=%08lx tid=%08lx
\n
"
,
DPRINTF
(
"%08lx:RET %s.%ld: %s() retval = %08lx ret=%08lx tid=%08lx
\n
"
,
GetCurrentThreadId
(),
ret
->
dll
->
name
,
ret
->
ordinal
,
ret
->
dll
->
funs
[
ret
->
ordinal
].
name
,
context
->
Eax
,
(
DWORD
)
ret
->
origreturn
,
GetCurrentThreadId
());
ret
->
origreturn
=
NULL
;
/* mark as empty */
...
...
scheduler/process.c
View file @
e17d1a36
...
...
@@ -393,8 +393,9 @@ static void start_process(void)
/* Call UserSignalProc ( USIG_PROCESS_RUNNING ... ) only for non-GUI win32 apps */
if
(
console_app
)
PROCESS_CallUserSignalProc
(
USIG_PROCESS_RUNNING
,
0
);
TRACE_
(
relay
)(
"Starting Win32 process %s (entryproc=%p) tid=%08lx
\n
"
,
main_exe_name
,
entry
,
GetCurrentThreadId
()
);
if
(
TRACE_ON
(
relay
))
DPRINTF
(
"%08lx:Starting process %s (entryproc=%p)
\n
"
,
GetCurrentThreadId
(),
main_exe_name
,
entry
);
if
(
debugged
)
DbgBreakPoint
();
/* FIXME: should use _PEB as parameter for NT 3.5 programs !
* Dunno about other OSs */
...
...
scheduler/thread.c
View file @
e17d1a36
...
...
@@ -272,7 +272,8 @@ static void THREAD_Start(void)
NtCurrentTeb
()
->
cleanup
=
SERVICE_AddObject
(
cleanup_object
,
(
PAPCFUNC
)
THREAD_FreeTEB
,
(
ULONG_PTR
)
NtCurrentTeb
()
);
TRACE_
(
relay
)(
"Starting thread %08lx
\n
"
,
GetCurrentThreadId
());
if
(
TRACE_ON
(
relay
))
DPRINTF
(
"%08lx:Starting thread (entryproc=%p)
\n
"
,
GetCurrentThreadId
(),
func
);
PROCESS_CallUserSignalProc
(
USIG_THREAD_INIT
,
0
);
PE_InitTls
();
...
...
windows/winproc.c
View file @
e17d1a36
...
...
@@ -161,16 +161,19 @@ static LRESULT WINPROC_CallWndProc( WNDPROC proc, HWND hwnd, UINT msg,
{
LRESULT
retvalue
;
int
iWndsLocks
;
TRACE_
(
relay
)(
"(wndproc=%p,hwnd=%08x,msg=%s,wp=%08x,lp=%08lx)
\n
"
,
proc
,
hwnd
,
SPY_GetMsgName
(
msg
),
wParam
,
lParam
);
if
(
TRACE_ON
(
relay
))
DPRINTF
(
"%08lx:Call window proc %p (hwnd=%08x,msg=%s,wp=%08x,lp=%08lx)
\n
"
,
GetCurrentThreadId
(),
proc
,
hwnd
,
SPY_GetMsgName
(
msg
),
wParam
,
lParam
);
/* To avoid any deadlocks, all the locks on the windows structures
must be suspended before the control is passed to the application */
iWndsLocks
=
WIN_SuspendWndsLock
();
retvalue
=
WINPROC_wrapper
(
proc
,
hwnd
,
msg
,
wParam
,
lParam
);
WIN_RestoreWndsLock
(
iWndsLocks
);
TRACE_
(
relay
)(
"(wndproc=%p,hwnd=%08x,msg=%s,wp=%08x,lp=%08lx) retval=%08lx
\n
"
,
proc
,
hwnd
,
SPY_GetMsgName
(
msg
),
wParam
,
lParam
,
retvalue
);
if
(
TRACE_ON
(
relay
))
DPRINTF
(
"%08lx:Ret window proc %p (hwnd=%08x,msg=%s,wp=%08x,lp=%08lx) retval=%08lx
\n
"
,
GetCurrentThreadId
(),
proc
,
hwnd
,
SPY_GetMsgName
(
msg
),
wParam
,
lParam
,
retvalue
);
return
retvalue
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment