Index: gdbtk-bp.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-bp.c,v retrieving revision 1.38 diff -u -p -r1.38 gdbtk-bp.c --- gdbtk-bp.c 13 Nov 2010 23:23:46 -0000 1.38 +++ gdbtk-bp.c 8 Apr 2011 23:25:01 -0000 @@ -1,5 +1,6 @@ /* Tcl/Tk command definitions for Insight - Breakpoints. - Copyright (C) 2001, 2002, 2008, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2008, 2009, 2010, 2011 + Free Software Foundation, Inc. This file is part of GDB. @@ -826,12 +827,11 @@ tracepoint_exists (char *args) VEC(breakpoint_p) *tp_vec = NULL; int ix; struct breakpoint *tp; - char **canonical; struct symtabs_and_lines sals; char *file = NULL; int result = -1; - sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL); + sals = decode_line_1 (&args, 1, NULL, 0, NULL, NULL); if (sals.nelts == 1) { resolve_sal_pc (&sals.sals[0]); Index: gdbtk-cmds.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-cmds.c,v retrieving revision 1.118 diff -u -p -r1.118 gdbtk-cmds.c --- gdbtk-cmds.c 18 Jun 2010 22:25:26 -0000 1.118 +++ gdbtk-cmds.c 8 Apr 2011 23:25:01 -0000 @@ -1,5 +1,6 @@ /* Tcl/Tk command definitions for Insight. - Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2007, 2008, 2010 + Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, + 2007, 2008, 2010, 2011 Free Software Foundation, Inc. Written by Stu Grossman of Cygnus Support. @@ -652,9 +653,7 @@ gdb_eval (ClientData clientData, Tcl_Int /* "Print" the result of the expression evaluation. */ stb = mem_fileopen (); make_cleanup_ui_file_delete (stb); - val_print (value_type (val), value_contents (val), - value_embedded_offset (val), value_address (val), - stb, 0, val, &opts, current_language); + common_val_print (val, stb, 0, &opts, current_language); result = ui_file_xstrdup (stb, &dummy); Tcl_SetObjResult (interp, Tcl_NewStringObj (result, -1)); xfree (result); @@ -953,7 +952,7 @@ gdb_get_line_command (ClientData clientD int objc, Tcl_Obj *CONST objv[]) { struct symtabs_and_lines sals; - char *args, **canonical; + char *args; if (objc != 2) { @@ -962,7 +961,7 @@ gdb_get_line_command (ClientData clientD } args = Tcl_GetStringFromObj (objv[1], NULL); - sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL); + sals = decode_line_1 (&args, 1, NULL, 0, NULL, NULL); if (sals.nelts == 1) { Tcl_SetIntObj (result_ptr->obj_ptr, sals.sals[0].line); @@ -989,7 +988,7 @@ gdb_get_file_command (ClientData clientD int objc, Tcl_Obj *CONST objv[]) { struct symtabs_and_lines sals; - char *args, **canonical; + char *args; if (objc != 2) { @@ -998,7 +997,7 @@ gdb_get_file_command (ClientData clientD } args = Tcl_GetStringFromObj (objv[1], NULL); - sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL); + sals = decode_line_1 (&args, 1, NULL, 0, NULL, NULL); if (sals.nelts == 1) { Tcl_SetStringObj (result_ptr->obj_ptr, @@ -1025,7 +1024,7 @@ gdb_get_function_command (ClientData cli { char *function; struct symtabs_and_lines sals; - char *args, **canonical; + char *args; if (objc != 2) { @@ -1034,7 +1033,7 @@ gdb_get_function_command (ClientData cli } args = Tcl_GetStringFromObj (objv[1], NULL); - sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL); + sals = decode_line_1 (&args, 1, NULL, 0, NULL, NULL); if (sals.nelts == 1) { resolve_sal_pc (&sals.sals[0]); Index: gdbtk-register.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-register.c,v retrieving revision 1.39 diff -u -p -r1.39 gdbtk-register.c --- gdbtk-register.c 18 Jun 2010 22:25:26 -0000 1.39 +++ gdbtk-register.c 8 Apr 2011 23:25:01 -0000 @@ -1,5 +1,6 @@ /* Tcl/Tk command definitions for Insight - Registers - Copyright (C) 2001, 2002, 2004, 2007 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2004, 2007, 2010, 2011 + Free Software Foundation, Inc. This file is part of GDB. @@ -272,17 +273,19 @@ get_register_types (int regnum, map_arg static void get_register (int regnum, map_arg arg) { - int realnum; CORE_ADDR addr; enum lval_type lval; struct type *reg_vtype; gdb_byte buffer[MAX_REGISTER_SIZE]; - int optim, format; + int format; struct cleanup *old_chain = NULL; struct ui_file *stb; long dummy; char *res; - + struct gdbarch *gdbarch; + struct value *val; + struct frame_info *frame; + format = regformat[regnum]; if (format == 0) format = 'x'; @@ -300,10 +303,11 @@ get_register (int regnum, map_arg arg) return; } - frame_register (get_selected_frame (NULL), regnum, &optim, &lval, - &addr, &realnum, buffer); + frame = get_selected_frame (NULL); + gdbarch = get_frame_arch (frame); + val = get_frame_register_value (frame, regnum); - if (optim) + if (value_optimized_out (val)) { Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewStringObj ("Optimized out", -1)); @@ -318,13 +322,14 @@ get_register (int regnum, map_arg arg) /* shouldn't happen. raw format is deprecated */ int j; char *ptr, buf[1024]; + const gdb_byte *valaddr = value_contents_for_printing (val); strcpy (buf, "0x"); ptr = buf + 2; - for (j = 0; j < register_size (get_current_arch (), regnum); j++) + for (j = 0; j < register_size (gdbarch, regnum); j++) { - int idx = ((gdbarch_byte_order (get_current_arch ()) == BFD_ENDIAN_BIG) - ? j : register_size (get_current_arch (), regnum) - 1 - j); + int idx = ((gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG) + ? j : register_size (gdbarch, regnum) - 1 - j); sprintf (ptr, "%02x", (unsigned char) buffer[idx]); ptr += 2; } @@ -337,17 +342,9 @@ get_register (int regnum, map_arg arg) get_formatted_print_options (&opts, format); opts.deref_ref = 1; opts.pretty = Val_pretty_default; - - if ((TYPE_CODE (reg_vtype) == TYPE_CODE_UNION) - && (strcmp (FIELD_NAME (TYPE_FIELD (reg_vtype, 0)), - gdbarch_register_name (get_current_arch (), regnum)) == 0)) - { - val_print (FIELD_TYPE (TYPE_FIELD (reg_vtype, 0)), buffer, 0, 0, - stb, 0, NULL, &opts, current_language); - } - else - val_print (reg_vtype, buffer, 0, 0, - stb, 0, NULL, &opts, current_language); + val_print (reg_vtype, value_contents_for_printing (val), + value_embedded_offset (val), 0, + stb, 0, val, &opts, current_language); } res = ui_file_xstrdup (stb, &dummy); Index: gdbtk-stack.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-stack.c,v retrieving revision 1.34 diff -u -p -r1.34 gdbtk-stack.c --- gdbtk-stack.c 7 Jul 2009 12:38:56 -0000 1.34 +++ gdbtk-stack.c 8 Apr 2011 23:25:01 -0000 @@ -1,5 +1,6 @@ /* Tcl/Tk command definitions for Insight - Stack. - Copyright (C) 2001, 2002, 2003, 2008 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2008, 2011 + Free Software Foundation, Inc. This file is part of GDB. @@ -277,7 +278,7 @@ gdb_get_vars_command (ClientData clientD struct symtabs_and_lines sals; struct symbol *sym; struct block *block; - char **canonical, *args; + char *args; struct dict_iterator iter; int i, arguments; @@ -297,7 +298,7 @@ gdb_get_vars_command (ClientData clientD if (objc == 2) { args = Tcl_GetStringFromObj (objv[1], NULL); - sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL); + sals = decode_line_1 (&args, 1, NULL, 0, NULL, NULL); if (sals.nelts == 0) { gdbtk_set_result (interp, "error decoding line");