OSDN Git Service

2001-10-29 Martin M. Hunt <hunt@redhat.com>
authorhunt <hunt>
Mon, 29 Oct 2001 19:37:04 +0000 (19:37 +0000)
committerhunt <hunt>
Mon, 29 Oct 2001 19:37:04 +0000 (19:37 +0000)
* generic/gdbtk-bp.c (gdb_find_bp_at_addr): Use
string_to_core_addr to read address so 64 bits will work.
(gdb_set_bp): Set error message with Tcl_SetObjResult()
so it will be displayed.
(gdb_set_bp_addr):Use string_to_core_addr to read address.
Set error message with Tcl_SetObjResult().

* generic/gdbtk-cmds.c (gdb_get_mem): :Use string_to_core_addr
to read address. Set error message with Tcl_SetObjResult() or
Tcl_WrongNumArgs.

gdb/gdbtk/ChangeLog
gdb/gdbtk/generic/gdbtk-bp.c
gdb/gdbtk/generic/gdbtk-cmds.c

index 79455d1..e7e7cf5 100644 (file)
@@ -1,3 +1,16 @@
+2001-10-29  Martin M. Hunt  <hunt@redhat.com>
+
+       * generic/gdbtk-bp.c (gdb_find_bp_at_addr): Use
+       string_to_core_addr to read address so 64 bits will work.
+       (gdb_set_bp): Set error message with Tcl_SetObjResult()
+       so it will be displayed.
+       (gdb_set_bp_addr):Use string_to_core_addr to read address.
+       Set error message with Tcl_SetObjResult().
+
+       * generic/gdbtk-cmds.c (gdb_get_mem): :Use string_to_core_addr 
+       to read address. Set error message with Tcl_SetObjResult() or
+       Tcl_WrongNumArgs.
+       
 2001-10-27  Tom Tromey  <tromey@redhat.com>
 
        * tclIndex: Updated.
@@ -12,9 +25,9 @@
        session_save.
        (gdbtk_tcl_preloop): Don't set executable name or try to find
        main.  Notice a new session if required.
-
+       
 2001-10-18  Martin M. Hunt  <hunt@redhat.com>
-
+       
        * library/srcpref.itb (SrcPref::contructor): Move array
        initialization to _init_var.
        (SrcPref::_init_var): New method to initialize _saved and 
index 0d96756..3748180 100644 (file)
@@ -200,15 +200,11 @@ Gdbtk_Breakpoint_Init (Tcl_Interp *interp)
  *    It returns a list of breakpoint numbers
  */
 static int
-gdb_find_bp_at_addr (clientData, interp, objc, objv)
-     ClientData clientData;
-     Tcl_Interp *interp;
-     int objc;
-     Tcl_Obj *CONST objv[];
-
+gdb_find_bp_at_addr ( ClientData clientData, Tcl_Interp *interp,
+                     int objc, Tcl_Obj *CONST objv[])
 {
   int i;
-  long addr;
+  CORE_ADDR addr;
 
   if (objc != 2)
     {
@@ -216,17 +212,13 @@ gdb_find_bp_at_addr (clientData, interp, objc, objv)
       return TCL_ERROR;
     }
 
-  if (Tcl_GetLongFromObj (interp, objv[1], &addr) == TCL_ERROR)
-    {
-      result_ptr->flags = GDBTK_IN_TCL_RESULT;
-      return TCL_ERROR;
-    }
+  addr = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
 
   Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
   for (i = 0; i < breakpoint_list_size; i++)
     {
       if (breakpoint_list[i] != NULL
-         && breakpoint_list[i]->address == (CORE_ADDR) addr)
+         && breakpoint_list[i]->address == addr)
        Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
                                  Tcl_NewIntObj (i));
     }
@@ -489,11 +481,8 @@ gdb_get_breakpoint_list (clientData, interp, objc, objv)
  *    The return value of the call to gdbtk_tcl_breakpoint.
  */
 static int
-gdb_set_bp (clientData, interp, objc, objv)
-     ClientData clientData;
-     Tcl_Interp *interp;
-     int objc;
-     Tcl_Obj *CONST objv[];
+gdb_set_bp (ClientData clientData, Tcl_Interp *interp,
+           int objc, Tcl_Obj *CONST objv[])
 {
   struct symtab_and_line sal;
   int line, thread = -1;
@@ -518,19 +507,14 @@ gdb_set_bp (clientData, interp, objc, objv)
     }
 
   typestr = Tcl_GetStringFromObj (objv[3], NULL);
-  if (typestr == NULL)
-    {
-      result_ptr->flags = GDBTK_IN_TCL_RESULT;
-      return TCL_ERROR;
-    }
   if (strncmp (typestr, "temp", 4) == 0)
     disp = disp_del;
   else if (strncmp (typestr, "normal", 6) == 0)
     disp = disp_donttouch;
   else
     {
-      Tcl_SetStringObj (result_ptr->obj_ptr,
-                       "type must be \"temp\" or \"normal\"", -1);
+      Tcl_SetObjResult (interp, 
+                       Tcl_NewStringObj ("type must be \"temp\" or \"normal\"", -1));
       return TCL_ERROR;
     }
 
@@ -582,7 +566,7 @@ gdb_set_bp_addr (ClientData clientData, Tcl_Interp *interp, int objc,
 {
   struct symtab_and_line sal;
   int thread = -1;
-  long addr;
+  CORE_ADDR addr;
   struct breakpoint *b;
   char *typestr, *buf;
   enum bpdisp disp;
@@ -593,26 +577,17 @@ gdb_set_bp_addr (ClientData clientData, Tcl_Interp *interp, int objc,
       return TCL_ERROR;
     }
 
-  if (Tcl_GetLongFromObj (interp, objv[1], &addr) == TCL_ERROR)
-    {
-      result_ptr->flags = GDBTK_IN_TCL_RESULT;
-      return TCL_ERROR;
-    }
+  addr = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
 
   typestr = Tcl_GetStringFromObj (objv[2], NULL);
-  if (typestr == NULL)
-    {
-      result_ptr->flags = GDBTK_IN_TCL_RESULT;
-      return TCL_ERROR;
-    }
   if (strncmp (typestr, "temp", 4) == 0)
     disp = disp_del;
   else if (strncmp (typestr, "normal", 6) == 0)
     disp = disp_donttouch;
   else
     {
-      Tcl_SetStringObj (result_ptr->obj_ptr,
-                       "type must be \"temp\" or \"normal\"", -1);
+      Tcl_SetObjResult (interp, 
+                       Tcl_NewStringObj ("type must be \"temp\" or \"normal\"", -1));
       return TCL_ERROR;
     }
 
index ddc6a1a..6b208da 100644 (file)
@@ -2567,24 +2567,18 @@ gdb_set_mem (clientData, interp, objc, objv)
  * a list of elements followed by an optional ASCII dump */
 
 static int
-gdb_get_mem (clientData, interp, objc, objv)
-     ClientData clientData;
-     Tcl_Interp *interp;
-     int objc;
-     Tcl_Obj *CONST objv[];
+gdb_get_mem (ClientData clientData, Tcl_Interp *interp,
+            int objc, Tcl_Obj *CONST objv[])
 {
   int size, asize, i, j, bc;
   CORE_ADDR addr;
   int nbytes, rnum, bpr;
-  long tmp;
   char format, buff[128], aschar, *mbuf, *mptr, *cptr, *bptr;
   struct type *val_type;
 
   if (objc < 6 || objc > 7)
     {
-      Tcl_SetStringObj (result_ptr->obj_ptr,
-                       "addr format size bytes bytes_per_row ?ascii_char?",
-                       -1);
+      Tcl_WrongNumArgs (interp, 1, objv, "addr format size bytes bytes_per_row ?ascii_char?");
       return TCL_ERROR;
     }
 
@@ -2595,7 +2589,7 @@ gdb_get_mem (clientData, interp, objc, objv)
     }
   else if (size <= 0)
     {
-      Tcl_SetStringObj (result_ptr->obj_ptr, "Invalid size, must be > 0", -1);
+      Tcl_SetObjResult (interp, Tcl_NewStringObj ("Invalid size, must be > 0", -1));
       return TCL_ERROR;
     }
 
@@ -2606,9 +2600,8 @@ gdb_get_mem (clientData, interp, objc, objv)
     }
   else if (nbytes <= 0)
     {
-      Tcl_SetStringObj (result_ptr->obj_ptr,
-                       "Invalid number of bytes, must be > 0",
-                       -1);
+      Tcl_SetObjResult (interp, 
+                       Tcl_NewStringObj ("Invalid number of bytes, must be > 0", -1));
       return TCL_ERROR;
     }
 
@@ -2619,21 +2612,18 @@ gdb_get_mem (clientData, interp, objc, objv)
     }
   else if (bpr <= 0)
     {
-      Tcl_SetStringObj (result_ptr->obj_ptr,
-                       "Invalid bytes per row, must be > 0", -1);
+      Tcl_SetObjResult (interp,
+                       Tcl_NewStringObj ("Invalid bytes per row, must be > 0", -1));
       return TCL_ERROR;
     }
 
-  if (Tcl_GetLongFromObj (interp, objv[1], &tmp) != TCL_OK)
-    return TCL_OK;
-
-  addr = (CORE_ADDR) tmp;
+  addr = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
 
   format = *(Tcl_GetStringFromObj (objv[2], NULL));
   mbuf = (char *) malloc (nbytes + 32);
   if (!mbuf)
     {
-      Tcl_SetStringObj (result_ptr->obj_ptr, "Out of memory.", -1);
+      Tcl_SetObjResult (interp, Tcl_NewStringObj ("Out of memory.", -1));
       return TCL_ERROR;
     }