Re: [OBV] Fix Build gdbtk-cmds.c get error
Hui Zhu <[email protected]>
| Newsgroups | gmane.comp.debugging.insight |
|---|---|
| Message-ID | <[email protected]> |
In i386-linux, it is OK. Thanks. Hui On Sat, Jun 19, 2010 at 06:24, Pierre Muller <[email protected]> wrote: > > >> -----Message d'origine----- >> De : [email protected] [mailto:[email protected]] >> De la part de Hui Zhu >> Envoyé : Thursday, June 17, 2010 4:18 AM >> À : [email protected] >> Objet : Re: Build gdbtk-cmds.c get error >> >> Ping. > > I checked the following in: > Note that it fixes the val_print problem > and also cygwin specific problems to > allow compilation with both 1.5 and 1.7 cygwin... > > For the cygwin_conv_path function, > I used the same macros as in gdb/windows-nat.c source. > > Please feel free to suggest better > fixes. > I didn't dare to change > GDB_val_print function, as this could have implications > for tcl/tk scripts... Am I right on this? > > > Pierre > > PS: I only fixed compilation and I am still unable to > really test cygwin insight :( > > > 2010-06-18 Pierre Muller <[email protected]> > > * generic/gdbtk-cmds.c: Add cygwin macros to allow compilation > with old or recent cygwin version. > (gdb_path_conv): Use cygwin_conv_path function. > (gdb_eval): Adapt to new field in val_print. > * generic/gdbtk-register.c (get_register): Likewise. > * generic/gdbtk-wrapper.c (wrap_val_print): Likewise. > * generic/gdbtk.c (_initialize_gdbtk): Use > cygwin_attach_handle_to_fd > call to allow compilation with old and new cygwin version. > > Index: generic/gdbtk-cmds.c > =================================================================== > RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-cmds.c,v > retrieving revision 1.117 > diff -u -p -r1.117 gdbtk-cmds.c > --- generic/gdbtk-cmds.c 12 Mar 2010 18:34:12 -0000 1.117 > +++ generic/gdbtk-cmds.c 18 Jun 2010 22:13:12 -0000 > @@ -74,6 +74,20 @@ > > #ifdef __CYGWIN__ > #include <sys/cygwin.h> /* for > cygwin_conv_to_full_win32_path */ > +#include <cygwin/version.h> > +# if > CYGWIN_VERSION_DLL_MAKE_COMBINED(CYGWIN_VERSION_API_MAJOR,CYGWIN_VERSION_API > _MINOR) >= 181 > +# define __USEWIDE > +# else > +# define CCP_POSIX_TO_WIN_A 0 > +# define CCP_POSIX_TO_WIN_W 1 > +# define CCP_WIN_A_TO_POSIX 2 > +# define CCP_WIN_W_TO_POSIX 3 > +# define cygwin_conv_path(op, from, to, size) \ > + (op == CCP_WIN_A_TO_POSIX) ? \ > + cygwin_conv_to_full_posix_path (from, to) : \ > + cygwin_conv_to_win32_path (from, to) > +# define CW_SET_DOS_FILE_WARNING -1 /* no-op this for older Cygwin */ > +# endif > #endif > > #ifdef HAVE_CTYPE_H > @@ -640,7 +654,7 @@ gdb_eval (ClientData clientData, Tcl_Int > make_cleanup_ui_file_delete (stb); > val_print (value_type (val), value_contents (val), > value_embedded_offset (val), value_address (val), > - stb, 0, &opts, current_language); > + stb, 0, val, &opts, current_language); > result = ui_file_xstrdup (stb, &dummy); > Tcl_SetObjResult (interp, Tcl_NewStringObj (result, -1)); > xfree (result); > @@ -2874,8 +2888,8 @@ gdb_path_conv (ClientData clientData, Tc > { > char pathname[256], *ptr; > > - cygwin_conv_to_full_win32_path (Tcl_GetStringFromObj (objv[1], NULL), > - pathname); > + cygwin_conv_path (CCP_POSIX_TO_WIN_A, Tcl_GetStringFromObj (objv[1], > NULL), > + pathname, 256); > for (ptr = pathname; *ptr; ptr++) > { > if (*ptr == '\\') > Index: generic/gdbtk-register.c > =================================================================== > RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-register.c,v > retrieving revision 1.38 > diff -u -p -r1.38 gdbtk-register.c > --- generic/gdbtk-register.c 7 Jul 2009 12:38:56 -0000 1.38 > +++ generic/gdbtk-register.c 18 Jun 2010 22:13:12 -0000 > @@ -343,11 +343,11 @@ get_register (int regnum, map_arg arg) > gdbarch_register_name (get_current_arch (), regnum)) > == 0)) > { > val_print (FIELD_TYPE (TYPE_FIELD (reg_vtype, 0)), buffer, 0, 0, > - stb, 0, &opts, current_language); > + stb, 0, NULL, &opts, current_language); > } > else > val_print (reg_vtype, buffer, 0, 0, > - stb, 0, &opts, current_language); > + stb, 0, NULL, &opts, current_language); > } > > res = ui_file_xstrdup (stb, &dummy); > Index: generic/gdbtk-wrapper.c > =================================================================== > RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-wrapper.c,v > retrieving revision 1.18 > diff -u -p -r1.18 gdbtk-wrapper.c > --- generic/gdbtk-wrapper.c 15 Dec 2008 18:06:12 -0000 1.18 > +++ generic/gdbtk-wrapper.c 18 Jun 2010 22:13:12 -0000 > @@ -218,7 +218,7 @@ wrap_val_print (char *a) > recurse = (*args)->args[6].integer; > opts.pretty = (enum val_prettyprint) (*args)->args[7].integer; > > - val_print (type, valaddr, 0, address, stream, recurse, &opts, > + val_print (type, valaddr, 0, address, stream, recurse, NULL, &opts, > current_language); > return 1; > } > Index: generic/gdbtk.c > =================================================================== > RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk.c,v > retrieving revision 1.50 > diff -u -p -r1.50 gdbtk.c > --- generic/gdbtk.c 6 Apr 2009 23:33:32 -0000 1.50 > +++ generic/gdbtk.c 18 Jun 2010 22:13:13 -0000 > @@ -709,15 +709,15 @@ _initialize_gdbtk () > break; > default: > AllocConsole (); > - cygwin32_attach_handle_to_fd ("/dev/conin", 0, > - GetStdHandle (STD_INPUT_HANDLE), > - 1, GENERIC_READ); > - cygwin32_attach_handle_to_fd ("/dev/conout", 1, > - GetStdHandle (STD_OUTPUT_HANDLE), > - 0, GENERIC_WRITE); > - cygwin32_attach_handle_to_fd ("/dev/conout", 2, > - GetStdHandle (STD_ERROR_HANDLE), > - 0, GENERIC_WRITE); > + cygwin_attach_handle_to_fd ("/dev/conin", 0, > + GetStdHandle (STD_INPUT_HANDLE), > + 1, GENERIC_READ); > + cygwin_attach_handle_to_fd ("/dev/conout", 1, > + GetStdHandle (STD_OUTPUT_HANDLE), > + 0, GENERIC_WRITE); > + cygwin_attach_handle_to_fd ("/dev/conout", 2, > + GetStdHandle (STD_ERROR_HANDLE), > + 0, GENERIC_WRITE); > break; > } > } > >