frame-select command. Cross funcalls to sun3. Build *.tab.c files in
authorJohn Gilmore <gnu@cygnus>
Fri, 25 Oct 1991 04:29:01 +0000 (04:29 +0000)
committerJohn Gilmore <gnu@cygnus>
Fri, 25 Oct 1991 04:29:01 +0000 (04:29 +0000)
target dir.

gdb/ChangeLog
gdb/Makefile.in
gdb/stack.c
gdb/tm-sun3.h

index c5b300da7a619a4704455129702877841cb201ee..4fd2a5ac6850762b1547b8409329eda9231e2565 100644 (file)
@@ -1,5 +1,8 @@
 Thu Oct 24 09:33:44 1991  John Gilmore  (gnu at cygnus.com)
 
+       * stack.c (frame_command):  Always print.  Use new
+       frame_select_command to select a frame without printing.        
+
        * dwarfread.c:  Use <varargs.h>, since <stdarg.h> is not portable.
 
 Thu Oct 24 01:32:51 1991  Fred Fish  (fnf at cygnus.com)
@@ -65,6 +68,18 @@ Thu Oct 24 01:32:51 1991  Fred Fish  (fnf at cygnus.com)
        replace them with a pointer to private data for each different
        flavor of object file reader to initialize appropriately.
 
+Wed Oct 23 09:38:20 1991  John Gilmore  (gnu at cygnus.com)
+
+       * xconfig/sun[34]os4:  Add note about strstr botch on sunos4.0.3c
+       and previous.
+
+       * mipsread.c (fixup_undef_type):  New function.  If a struct /
+       union / enum is defined in a header file but nowhere else used,
+       (by typedefing, pointer referencing or declaration) the mipsread code
+       builds the complete tree for the structure but leaves its code as
+       TYPE_CODE_UNDEF as it doesn't know what kind of aggregate it is.
+       Guess its type based on the details of the members.
+
 Tue Oct 22 18:04:32 1991  Stu Grossman  (grossman at cygnus.com)
 
        * infrun.c (wait_for_inferior):  Check return value from
@@ -75,6 +90,13 @@ Mon Oct 21 17:47:03 1991  Stu Grossman  (grossman at cygnus.com)
        * infrun.c (wait_for_inferior):  fix stepi/nexti that was broken
        by my last edit to this routine.
 
+Mon Oct 21 14:27:43 1991  John Gilmore  (gnu at cygnus.com)
+
+       * tm-sun3.h (FIX_CALL_DUMMY): problem with cross debugging.
+       FIX_CALL_DUMMY does unaligned accesses and/or forgets to byte swap
+       the values before putting them into the dummy code.  (From Peter
+       Schauer)
+
 Mon Oct 21 10:04:39 1991  Steve Chamberlain  (steve at rtl.cygnus.com)
 
        * configure.in: added ebmon target.
index 516571dfcb43e2917668e85ca69d033144247149..05c7f81e937e1640f1674f861fb151c81e25fe72 100644 (file)
@@ -293,7 +293,7 @@ saber_gdb: $(SFILES) $(DEPFILES) copying.c version.c
        #load ./init.c $(SFILES)
        #unload ${srcdir}/c-exp.y ${srcdir}/m2-exp.y ${srcdir}/vx-share/*.h
        #unload ${srcdir}/nindy-share/[A-Z]*
-       #load ${srcdir}/c-exp.tab.c ${srcdir}/m2-exp.tab.c
+       #load c-exp.tab.c m2-exp.tab.c
        #load copying.c version.c
        #load `echo " "$(DEPFILES) | sed -e 's/\.o/.c/g' -e 's, , ../,g'`
        #load ${LIBIBERTY_DIR}/*.c
@@ -589,20 +589,20 @@ copying.c : COPYING copying.awk
 version.c : Makefile.in
        echo 'char *version = "$(VERSION)";' >version.c
 
-# c-exp.tab.c is generated in srcdir from c-exp.y, then compiled in target
-# directory to c-exp.tab.o.
-c-exp.tab.o: ${srcdir}/c-exp.tab.c
-${srcdir}/c-exp.tab.c : $(srcdir)/c-exp.y
+# c-exp.tab.c is generated in target dir from c-exp.y if it doesn't exist
+# in srcdir, then compiled in target dir to c-exp.tab.o.
+c-exp.tab.o: c-exp.tab.c
+c-exp.tab.c: $(srcdir)/c-exp.y
        @echo 'Expect 4 shift/reduce conflicts.'
        ${YACC} $(srcdir)/c-exp.y
-       mv y.tab.c ${srcdir}/c-exp.tab.c
+       mv y.tab.c c-exp.tab.c
 
-# m2-exp.tab.c is generated in srcdir from m2-exp.y, then compiled in target
-# directory to m2-exp.tab.o.
-m2-exp.tab.o: ${srcdir}/m2-exp.tab.c
-${srcdir}/m2-exp.tab.c : $(srcdir)/m2-exp.y
+# m2-exp.tab.c is generated in target dir from m2-exp.y if it doesn't exist
+# in srcdir, then compiled in target dir to m2-exp.tab.o.
+m2-exp.tab.o: m2-exp.tab.c
+m2-exp.tab.c: $(srcdir)/m2-exp.y
        ${YACC} $(srcdir)/m2-exp.y
-       mv y.tab.c ${srcdir}/m2-exp.tab.c
+       mv y.tab.c m2-exp.tab.c
 
 # dbxread, coffread, mipsread, elfread have dependencies on BFD header files.
 dbxread.o: ${srcdir}/dbxread.c
index 23bf9cb584e7072b5d2baf30513f4dd3f9e700f2..64267014db9ce06be5ef1cb1e2dc5b609fdb0814 100644 (file)
@@ -360,7 +360,10 @@ frame_info (addr_exp)
 
   wrap_here ("   ");
   if (funname)
-    printf_filtered (" in %s", funname);
+    {
+      printf_filtered (" in ");
+      fputs_demangled (funname, stdout, 1);
+    }
   wrap_here ("   ");
   if (sal.symtab)
     printf_filtered (" (%s:%d)", sal.symtab->filename, sal.line);
@@ -925,14 +928,14 @@ find_relative_frame (frame, level_offset_ptr)
   return frame;
 }
 
-/* The "frame" command.  With no arg, print selected frame briefly.
+/* The "frame_select" command.  With no arg, NOP.
    With arg LEVEL_EXP, select the frame at level LEVEL if it is a
    valid level.  Otherwise, treat level_exp as an address expression
-   and print it.  See parse_frame_specification for more info on proper
+   and select it.  See parse_frame_specification for more info on proper
    frame expressions. */
 
 static void
-frame_command (level_exp, from_tty)
+frame_select_command (level_exp, from_tty)
      char *level_exp;
      int from_tty;
 {
@@ -958,10 +961,18 @@ frame_command (level_exp, from_tty)
     level = 0;
 
   select_frame (frame, level);
+}
 
-  if (!from_tty)
-    return;
+/* The "frame" command.  With no arg, print selected frame briefly.
+   With arg, behaves like frame_select and then prints the selected
+   frame.  */
 
+static void
+frame_command (level_exp, from_tty)
+     char *level_exp;
+     int from_tty;
+{
+  frame_select_command (level_exp, from_tty);
   print_stack_frame (selected_frame, selected_frame_level, 1);
 }
 
@@ -1148,6 +1159,11 @@ a command file or a user-defined command.");
 
   add_com_alias ("f", "frame", class_stack, 1);
 
+  add_com ("frame-select", class_stack, frame_select_command,
+          "Select a stack frame without printing anything.\n\
+An argument specifies the frame to select.\n\
+It can be a stack frame number or the address of the frame.\n");
+
   add_com ("backtrace", class_stack, backtrace_command,
           "Print backtrace of all stack frames, or innermost COUNT frames.\n\
 With a negative argument, print outermost -COUNT frames.");
index e6860c62f7fc6723fc408a478aa876c32e24af35..b3da81bbddc373f9cf6730a14a862fa663f0128c 100644 (file)
@@ -120,5 +120,10 @@ taken for the arguments.  */
    into a call sequence of the above form stored at DUMMYNAME.  */
 
 #define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p)     \
-{ *(int *)((char *) dummyname + 20) = nargs * 4;  \
-  *(int *)((char *) dummyname + 14) = fun; }
+{ int temp;                                             \
+  temp = nargs * 4;                                     \
+  SWAP_TARGET_AND_HOST (temp, 4);                       \
+  bcopy ((char *)&temp, (char *)(dummyname) + 20, 4);   \
+  temp = fun;                                           \
+  SWAP_TARGET_AND_HOST (temp, 4);                       \
+  bcopy ((char *)&temp, (char *)(dummyname) + 14, 4); }