Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
bb4ddfec
Commit
bb4ddfec
authored
Dec 05, 2003
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added a WINEDEBUG environment variable that allows turning on debug
output as early as possible during startup.
parent
a4330f93
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
68 additions
and
54 deletions
+68
-54
server.c
dlls/ntdll/server.c
+10
-5
wine.man.in
documentation/wine.man.in
+26
-41
debug.c
libs/wine/debug.c
+9
-8
loader.c
libs/wine/loader.c
+23
-0
No files found.
dlls/ntdll/server.c
View file @
bb4ddfec
...
...
@@ -55,9 +55,12 @@
#include "wine/library.h"
#include "wine/pthread.h"
#include "wine/server.h"
#include "wine/debug.h"
#include "winerror.h"
#include "ntdll_misc.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
server
);
/* Some versions of glibc don't define this */
#ifndef SCM_RIGHTS
#define SCM_RIGHTS 1
...
...
@@ -480,7 +483,7 @@ static void start_server( const char *oldcwd )
{
static
int
started
;
/* we only try once */
char
*
path
,
*
p
;
char
*
argv
[
2
];
char
*
argv
[
3
];
if
(
!
started
)
{
...
...
@@ -489,6 +492,9 @@ static void start_server( const char *oldcwd )
if
(
pid
==
-
1
)
fatal_perror
(
"fork"
);
if
(
!
pid
)
{
argv
[
0
]
=
"wineserver"
;
argv
[
1
]
=
TRACE_ON
(
server
)
?
"-d"
:
NULL
;
argv
[
2
]
=
NULL
;
/* if server is explicitly specified, use this */
if
((
p
=
getenv
(
"WINESERVER"
)))
{
...
...
@@ -499,14 +505,13 @@ static void start_server( const char *oldcwd )
sprintf
(
path
,
"%s/%s"
,
oldcwd
,
p
);
p
=
path
;
}
execl
(
p
,
p
,
NULL
);
argv
[
0
]
=
p
;
execv
(
argv
[
0
],
argv
);
fatal_perror
(
"could not exec the server '%s'
\n
"
" specified in the WINESERVER environment variable"
,
p
);
}
/* now use the standard search strategy */
argv
[
0
]
=
"wineserver"
;
argv
[
1
]
=
NULL
;
wine_exec_wine_binary
(
"wineserver"
,
argv
,
NULL
);
wine_exec_wine_binary
(
argv
[
0
],
argv
,
NULL
);
fatal_error
(
"could not exec wineserver
\n
"
);
}
waitpid
(
pid
,
&
status
,
0
);
...
...
documentation/wine.man.in
View file @
bb4ddfec
...
...
@@ -11,20 +11,18 @@ PROGRAM/ARGUMENTS
section of the man page.
.SH DESCRIPTION
.B wine
.I program
loads and runs the given program, where the program is a DOS, Windows 3.x,
or Win32 executable (x86 binaries only).
loads and runs the given program, where the program is a DOS, Windows
3.x, or Win32 executable (x86 binaries only).
.PP
For debugging wine, use
.B winedbg
.I program
instead.
.PP
For running CUI executables (Windows console programs), use
.B wineconsole
instead of
.B wine
.
This will display all the output in a separate windows (this requires X11 to
.B wine
.
This will display all the output in a separate windows (this requires X11 to
run). Not using
.B wineconsole
for CUI programs will only provide very limited console support, and your
...
...
@@ -39,8 +37,10 @@ using none at all or the ones from older Windows versions.
A large percentage of the API has been implemented,
although there are still several major pieces of work left to do.
.SH REQUIREMENTS AND INSTALLATION
Read the README file in the Wine source distribution and the wine.conf
man page to know what Wine requires and how it is installed from source.
Read the README file in the Wine source distribution and the
.BR wine.conf (5)
man page to know what Wine requires and how it is installed from
source.
.SH OPTIONS
.TP
.I --debugmsg [xxx]#name[,[xxx1]#name1]
...
...
@@ -57,11 +57,11 @@ If xxx is not specified, all debugging messages for the specified
channel are turned on. Each channel will print messages about a particular
component of
.B wine.
#
is required and can be either + or -. Note that
there is not a space after the comma between names. yyy are either the
name of a whole DLL or a single API entry by name you either
want to include or exclude from the relay listing. Case doesn't matter
for these. You can do the same for snoop
.
#
can be either + or - to switch the specified channel on or off
respectively. If there is no
.I xxx
part before it, a leading + can be omitted. Note that spaces are not
allowed anywhere in the string
.
.PP
For instance:
.PP
...
...
@@ -77,32 +77,12 @@ on all relay messages (API calls).
.br
.I --debugmsg +relay
will turn on all relay messages. For more control on including or excluding
functions and dlls look into the [Debug] section of the wine configuration file.
functions and dlls from the relay trace look into the [Debug] section
of the wine configuration file.
.PP
The full list of names is:
all, accel, advapi, animate, aspi, atom, avifile, bitblt, bitmap, caret,
cdrom, class, clipboard, clipping, combo, comboex, comm, commctrl, commdlg,
console, crtdll, cursor, datetime, dc, ddeml, ddraw, debug, debugstr,
delayhlp, dialog, dinput, dll, dosfs, dosmem, dplay, driver, dsound, edit,
elfdll, enhmetafile, event, exec, file, fixup, font, gdi, global, graphics,
header, heap, hook, hotkey, icmp, icon, imagehlp, imagelist, imm, int, int10,
int16, int17, int19, int21, int31, io, ipaddress, joystick, key, keyboard,
loaddll, ldt, listbox, listview, local, mci, mcianim, mciavi, mcicda, mcimidi,
mciwave, mdi, menu, message, metafile, midi, mmaux, mmio, mmsys, mmtime,
module, monthcal, mpr, msacm, msg, msvideo, nativefont, nonclient, ntdll,
odbc, ole, opengl, pager, palette, pidl, print, process, profile, progress,
prop, propsheet, psapi, psdrv, ras, rebar, reg, region, relay, resource,
richedit, scroll, segment, seh, selector, sendmsg, server, setupapi,
setupx, shell, snoop, sound, static, statusbar, storage, stress, string,
syscolor, system, tab, tape, tapi, task, text, thread, thunk, timer, toolbar,
toolhelp, tooltips, trackbar, treeview, ttydrv, tweak, typelib, updown, ver,
virtual, vxd, wave, win, win16drv, win32, winedbg, wing, wininet, winsock,
winspool, wnet, x11 and x11drv.
.PP
For more information on debugging messages, see the file
.I documentation/running.sgml
in the source distribution (FIXME: outdated).
For more information on debugging messages, see the
.I Running Wine
chapter of the Wine User Guide.
.RE
.PD 1
.SH PROGRAM/ARGUMENTS
...
...
@@ -204,6 +184,10 @@ try to load
and if this doesn't exist it will then look for a file named "wine" in
the path and in a few other likely locations.
.TP
.I WINEDEBUG
Turns debugging messages on or off. The syntax of the variable is
identical to the syntax of the arguments for the --debugmsg option.
.TP
.I WINEDLLPATH
Specifies the path(s) in which to search for builtin dlls and Winelib
applications. This is a list of directories separated by ":". In
...
...
@@ -312,7 +296,7 @@ pre-built contents of the documentation in various formats
The latest snapshot of the code may be obtained via CVS. For information
on how to do this, please see
.I
http://www.winehq.org/
development/
http://www.winehq.org/
cvs
.PP
WineHQ, the
.B wine
...
...
@@ -326,14 +310,15 @@ The
newsgroup is
.I comp.emulators.ms-windows.wine.
It is used for discussion of various
.B wine end user aspects/help.
.B wine
end user aspects/help.
.PP
For further information about
.B wine
development, you might want to subscribe to the
.B wine
mailing lists at
.I http://www.winehq.org/
development/#ml
.I http://www.winehq.org/
forums
.SH FILES
.PD 0
.TP
...
...
libs/wine/debug.c
View file @
bb4ddfec
...
...
@@ -155,11 +155,7 @@ int wine_dbg_parse_options( const char *str )
if
((
next
=
strchr
(
opt
,
','
)))
*
next
++
=
0
;
p
=
opt
+
strcspn
(
opt
,
"+-"
);
if
(
!
p
[
0
]
||
!
p
[
1
])
/* bad option, skip it */
{
errors
++
;
continue
;
}
if
(
!
p
[
0
])
p
=
opt
;
/* assume it's a debug channel name */
if
(
p
>
opt
)
{
...
...
@@ -182,10 +178,15 @@ int wine_dbg_parse_options( const char *str )
}
else
{
if
(
*
p
==
'+'
)
set
=
~
0
;
else
clear
=
~
0
;
if
(
*
p
==
'-'
)
clear
=
~
0
;
else
set
=
~
0
;
}
if
(
*
p
==
'+'
||
*
p
==
'-'
)
p
++
;
if
(
!
p
[
0
])
{
errors
++
;
continue
;
}
p
++
;
if
(
!
strcmp
(
p
,
"all"
))
p
=
""
;
/* empty string means all */
wine_dbg_add_option
(
p
,
set
,
clear
);
}
...
...
libs/wine/loader.c
View file @
bb4ddfec
...
...
@@ -412,6 +412,22 @@ void *wine_dll_load_main_exe( const char *name, char *error, int errorsize,
/***********************************************************************
* debug_usage
*/
static
void
debug_usage
(
void
)
{
static
const
char
usage
[]
=
"Syntax of the WINEDEBUG variable:
\n
"
" WINEDEBUG=[class]+xxx,[class]-yyy,...
\n\n
"
"Example: WINEDEBUG=+all,warn-heap
\n
"
" turns on all messages except warning heap messages
\n
"
"Available message classes: err, warn, fixme, trace
\n
"
;
write
(
2
,
usage
,
sizeof
(
usage
)
-
1
);
exit
(
1
);
}
/***********************************************************************
* wine_init
*
* Main Wine initialisation.
...
...
@@ -419,6 +435,7 @@ void *wine_dll_load_main_exe( const char *name, char *error, int errorsize,
void
wine_init
(
int
argc
,
char
*
argv
[],
char
*
error
,
int
error_size
)
{
extern
char
**
environ
;
char
*
wine_debug
;
int
file_exists
;
void
*
ntdll
;
void
(
*
init_func
)(
void
);
...
...
@@ -429,6 +446,12 @@ void wine_init( int argc, char *argv[], char *error, int error_size )
__wine_main_argv
=
argv
;
__wine_main_environ
=
environ
;
if
((
wine_debug
=
getenv
(
"WINEDEBUG"
)))
{
if
(
!
strcmp
(
wine_debug
,
"help"
))
debug_usage
();
wine_dbg_parse_options
(
wine_debug
);
}
if
(
!
(
ntdll
=
dlopen_dll
(
"ntdll.dll"
,
error
,
error_size
,
0
,
&
file_exists
)))
return
;
if
(
!
(
init_func
=
wine_dlsym
(
ntdll
,
"__wine_process_init"
,
error
,
error_size
)))
return
;
init_func
();
...
...
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