Hi developers. There's a manual on this page: http://www.winehq.org/docs/winedev-guide/dbg-others
Start the Wine debugger with a command line like: winedbg --gdb --no-start <name_of_exe_to_debug.exe> Start ddd In ddd, use the 'Open File' or 'Open Program' to point to the Wine executable (which is either wine-pthread or wine-kthread depending on your settings). In the output of 1/, there's a line like target remote localhost:32878 copy that line and paste into ddd command pane (the one with the (gdb) prompt)
So many steps. Is there an easier way? Or maybe everyone use plain winedbg without any IDE?
Le 13/04/2012 19:58, Ilya Basin a écrit :
Hi developers. There's a manual on this page: http://www.winehq.org/docs/winedev-guide/dbg-others
Start the Wine debugger with a command line like: winedbg --gdb --no-start<name_of_exe_to_debug.exe> Start ddd In ddd, use the 'Open File' or 'Open Program' to point to the Wine executable (which is either wine-pthread or wine-kthread depending on your settings). In the output of 1/, there's a line like target remote localhost:32878 copy that line and paste into ddd command pane (the one with the (gdb) prompt)
So many steps. Is there an easier way? Or maybe everyone use plain winedbg without any IDE?
it depends on how the interaction with gdb is done... some IDE provide sufficient parametrisation of gdb launching so that you can use directly winedbg --gdb <nameofexe.exe> but YMMV which IDE do you have in mind ? A+
which IDE do you have in mind ?
Eclipse or Netbeans. Eclipse 3.7.2 looks promising. It even managed to detect -I and -D compiler options in the wine makefiles.
I didn't work with Netbeans for long. The last time I had to manually set all the include directories and macros.
some IDE provide sufficient parametrisation of gdb launching so that you can use directly winedbg --gdb <nameofexe.exe>
Unfortunately, Eclipse passes <nameofexe.exe> not via command line, but as a GDB command.
Le 13/04/2012 22:21, Ilya Basin a écrit :
which IDE do you have in mind ?
Eclipse or Netbeans. Eclipse 3.7.2 looks promising. It even managed to detect -I and -D compiler options in the wine makefiles.
I didn't work with Netbeans for long. The last time I had to manually set all the include directories and macros.
some IDE provide sufficient parametrisation of gdb launching so that you can use directly winedbg --gdb<nameofexe.exe>
Unfortunately, Eclipse passes<nameofexe.exe> not via command line, but as a GDB command.
that's somehow also supported by winedbg (or supposed to be...) do you have a trace of the gdb commands ? A+
I've already written a wrapper (see my other mail winedbg-eclipse - winedbg wrapper for Eclipse IDE) There are some problems, however.
EP> do you have a trace of the gdb commands ?
gdb --version gdb --interpreter mi2 --nx
1-list-features 2-environment-cd /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit 3-gdb-set breakpoint pending on 4-gdb-set detach-on-fork on 5-enable-pretty-printing 6source .gdbinit 7-gdb-set target-async off 8-gdb-set auto-solib-add on 9-file-exec-and-symbols --thread-group i1 /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit/regedit.exe.so 10-gdb-set --thread-group i1 args testexport 11-list-thread-groups --available 12-break-insert --thread-group i1 -f /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit/regproc.c:1092 13-break-insert --thread-group i1 -f /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit/regproc.c:1111 14-break-insert --thread-group i1 -t -f main 15-inferior-tty-set --thread-group i1 /dev/pts/0 16-exec-run --thread-group i1
Le 14/04/2012 22:41, Ilya Basin a écrit :
I've already written a wrapper (see my other mail winedbg-eclipse - winedbg wrapper for Eclipse IDE) There are some problems, however.
EP> do you have a trace of the gdb commands ?
gdb --version gdb --interpreter mi2 --nx
1-list-features 2-environment-cd /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit 3-gdb-set breakpoint pending on 4-gdb-set detach-on-fork on 5-enable-pretty-printing 6source .gdbinit 7-gdb-set target-async off 8-gdb-set auto-solib-add on 9-file-exec-and-symbols --thread-group i1 /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit/regedit.exe.so 10-gdb-set --thread-group i1 args testexport 11-list-thread-groups --available 12-break-insert --thread-group i1 -f /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit/regproc.c:1092 13-break-insert --thread-group i1 -f /media/ARCHLINUXOLD/1/builds/wine/src/wine/programs/regedit/regproc.c:1111 14-break-insert --thread-group i1 -t -f main 15-inferior-tty-set --thread-group i1 /dev/pts/0 16-exec-run --thread-group i1
IMO you're debugging a 64 bit target, and remote protocol seems to suffer some bugs in this case I'll send a fix later on... A+