Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
WINEDUMP(1)		    Wine Developers Manual		   WINEDUMP(1)

NAME
       winedump	- Wine DLL tool

SYNOPSIS
       winedump	[-h | sym sym |	spec dll | dump	file ] [mode_options]

DESCRIPTION
       winedump	is a Wine tool which aims to help:

       - A: Reimplementing a Win32 DLL for use within Wine, or
       - B: Compiling a	Win32 application with Winelib that uses x86 DLLs

       For  both  tasks	 in order to be	able to	link to	the Win	functions some
       glue code is needed.  This 'glue' comes in the form of  a  .spec	 file.
       The  .spec  file,  along	with some dummy	code, is used to create	a Wine
       .so corresponding to the	Windows	DLL.  The winebuild program  can  then
       resolve calls made to DLL functions.

       Creating	 a  .spec  file	 is a labour intensive task during which it is
       easy to make a mistake. The idea	of winedump is to automate  this  task
       and create the majority of the support code needed for your DLL.	In ad-
       dition  you  can	 have  winedump	create code to help you	re-implement a
       DLL, by providing tracing of calls to the DLL, and (in some cases)  au-
       tomatically determining the parameters, calling conventions, and	return
       values of the DLL functions.

       Another	use  for  this	tool  is to display (dump) information about a
       32bit DLL or PE format image file. When used in this way	winedump func-
       tions similarly to tools	such as	pedump provided	by many	Win32 compiler
       vendors.

       Finally winedump	can be also used to demangle C++ symbols.

MODES
       winedump	can be used in several different modes.	 The first argument to
       the program determines the mode winedump	will run in.

       -h     Help mode.  Basic	usage help is printed.

       dump   To dump the contents of a	file.

       spec   For generating .spec files and stub DLLs.

       sym    Symbol mode.  Used to demangle C++ symbols.

OPTIONS
       Mode options depend on the mode given as	the first argument.

   Help	mode
       No options are used.  The program prints	the help info and then exits.

   Dump	mode
       file   Dumps the	contents of file. Various file formats	are  supported
	      (PE, NE, LE, Minidumps, .lnk).

       -C     Turns on symbol demangling.

       -f     Dumps file header	information.  This option dumps	only the stan-
	      dard  PE	header structures, along with the COFF sections	avail-
	      able in the file.

       -j dir_name
	      Dumps only the content of	directory dir_name,  for  files	 which
	      header points to directories.  For PE files, the import, export,
	      debug,  resource,	 tls,  loadcfg,	clr, reloc and except directo-
	      ries, as well as the apiset section, are	implemented.   For  NE
	      files, the export	and resource directories are implemented.

       -x     Dumps everything.	 This command prints all available information
	      (including  all available	directories - see -j option) about the
	      file. You	may wish to pipe the output through more/less or  into
	      a	file, since a lot of output will be produced.

       -G     Dumps  contents of debug section if any (for now,	only stabs in-
	      formation	is supported).

   Spec	mode
       dll    Use dll for input	file and generate implementation code.

       -I dir Look for prototypes in dir (implies -c). In the case of  Windows
	      DLLs,  this  could be either the standard	include	directory from
	      your compiler, or	a SDK include directory.  If you have  a  text
	      document	with  prototypes  (such	 as documentation) that	can be
	      used also, however you may need to delete	some non-code lines to
	      ensure that prototypes are parsed	correctly.  The	 dir  argument
	      can  also	 be a file specification (e.g.	include/*). If it con-
	      tains wildcards you must quote it	to prevent the shell from  ex-
	      panding  it.   If	 you  have no prototypes, specify /dev/null as
	      dir.  winedump may still be able to generate some	 working  stub
	      code for you.

       -c     Generate	skeleton  code (requires -I).  This option tells wine-
	      dump to create function stubs for	each function in the  DLL.  As
	      winedump	reads  each  exported  symbol  from the	source DLL, it
	      first tries to demangle the name.	If the name is a  C++  symbol,
	      the  arguments,  class and return	value are all encoded into the
	      symbol name. Winedump converts this information into a  C	 func-
	      tion  prototype.	If this	fails, the file(s) specified in	the -I
	      argument are scanned for a function prototype. If	one  is	 found
	      it is used for the next step of the process, code	generation.

       -t     TRACE  arguments	(implies  -c).	 This option produces the same
	      code as -c, except that arguments	are printed out	when the func-
	      tion is called.  Structs that are	passed by value	are printed as
	      "struct",	and functions that take	variable argument lists	 print
	      "...".

       -f dll Forward calls to dll (implies -t).  This is the most complicated
	      level of code generation.	The same code is generated as -t, how-
	      ever  support  is	added for forwarding calls to another DLL. The
	      DLL to forward to	is given as dll.

       -D     Generate documentation.  By default, winedump generates a	 stan-
	      dard  comment at the header of each function it generates. Pass-
	      ing this option makes winedump output a full header template for
	      standard Wine documentation, listing the parameters  and	return
	      value of the function.

       -o name
	      Set the output dll name (default:	dll).  By default, if winedump
	      is  run  on  DLL foo, it creates files foo.spec, foo_main.c etc,
	      and prefixes any functions generated with	FOO_.  If  -o  bar  is
	      given,  these  will become bar.spec, bar_main.c and BAR_ respec-
	      tively.  This option is mostly useful when generating a forward-
	      ing DLL.

       -C     Assume __cdecl calls (default: __stdcall).  If winebuild	cannot
	      determine	 the calling convention, __stdcall is used by default,
	      unless this option has been given.  Unless -q is given, a	 warn-
	      ing  will	be printed for every function that winedump determines
	      the calling convention for and which does	not match the  assumed
	      calling convention.

       -s num Start prototype search after symbol num.

       -e num End  prototype search after symbol num.  By passing the -s or -e
	      options you can have winedump try	to generate code for only some
	      functions	in your	DLL. This may be used  to  generate  a	single
	      function,	 for example, if you wanted to add functionality to an
	      existing DLL.

       -S symfile
	      Search only prototype names found	in symfile.  If	 you  want  to
	      only  generate code for a	subset of exported functions from your
	      source DLL, you can use this option to provide a text file  con-
	      taining  the names of the	symbols	to extract, one	per line. Only
	      the symbols present in this file will be	used  in  your	output
	      DLL.

       -q     Don't  show progress (quiet).  No	output is printed unless a fa-
	      tal error	is encountered.

       -v     Show lots	of detail while	working	(verbose).  There are 3	levels
	      of output	while winedump is running.  The	 default  level,  when
	      neither  -q or -v	are given, prints the number of	exported func-
	      tions found in the dll, followed by the name of each function as
	      it is processed, and a  status  indication  of  whether  it  was
	      processed	 OK.   With  -v	 given,	a lot of information is	dumped
	      while winedump works: this is intended to	help debug  any	 prob-
	      lems.

   Sym mode
       sym    Demangles	C++ symbol sym and then	exits.

FILES
       function_grep.pl
	      Perl script used to retrieve a function prototype.

       Files output in spec mode for foo.dll:

       foo.spec
	      This is the .spec	file.

       foo_dll.h, foo_main.c
	      These  are  the  source code files containing the	minimum	set of
	      code to build a stub DLL.	The  C	file  contains	one  function,
	      FOO_Init,	which does nothing (but	must be	present).

       Makefile.in
	      This  is	a  template for	configure to produce a makefile. It is
	      designed for a DLL that will be inserted into  the  Wine	source
	      tree.

BUGS
       C++  name  demangling  is  not fully in sync with the implementation in
       msvcrt.	It might be useful to submit your C++ name  to	the  testsuite
       for msvcrt.

       Bugs can	be reported on the Wine	bug tracker <https://bugs.winehq.org>.

AUTHORS
       Jon P. Griffiths	<jon_p_griffiths at yahoo dot com>
       Michael Stefaniuc <mstefani at redhat dot com>

AVAILABILITY
       winedump	 is  part of the Wine distribution, which is available through
       WineHQ, the Wine	development headquarters <https://www.winehq.org/>.

SEE ALSO
       wine(1)
       Wine documentation and support <https://www.winehq.org/help>.

Wine 10.1			 October 2005			   WINEDUMP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=winedump&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help