* energize.c: Second cut at DynamicLoad message handling.
authorStu Grossman <grossman@cygnus>
Sat, 18 Jul 1992 00:29:40 +0000 (00:29 +0000)
committerStu Grossman <grossman@cygnus>
Sat, 18 Jul 1992 00:29:40 +0000 (00:29 +0000)
gdb/ChangeLog
gdb/energize.c

index f022039b5819b8cd5a13eb82badb6d842871d26a..4ae9e4488c91100f39874ce201f0149fe57e2da1 100644 (file)
@@ -1,5 +1,7 @@
 Fri Jul 17 16:52:04 1992  Stu Grossman  (grossman at cygnus.com)
 
+       * energize.c:  Second cut at DynamicLoad message handling.
+
        * energize.c:  Relativize pathnames in #include statements.
        * (kernel_dispatch):  Better error messages for unknown protocol
        messages.
index 33ee5a883d111bbc12a432dc738dba22eac5b361..9310bf9eebeed3c57d14f33f5deaf09b1c4fdbdd 100644 (file)
@@ -69,7 +69,8 @@ extern int pgrp_inferior;
 
 extern char *source_path;
 
-char **pprompt;                        /* Pointer to pointer to prompt */
+/* The name of the executable file */
+static char *exec_file;
 
 /* Tell energize_command_line_input() where to get its text from */
 static int doing_breakcommands_message = 0;
@@ -1149,18 +1150,25 @@ kernel_dispatch(queue)
          }
          break;
        case DynamicLoadRType:
-         switch (req->dynamicLoad.request->action)
-           {
-           case CDynamicLoadUpdateSymtab:
-             printf_filtered("CDynamicLoadUpdateSymtab, filename=%s\n",
-                             req->dynamicLoad.filenames.text);
-             break;
-           default:
-             printf_filtered("DynamicLoadRType: unknown action=%d, filename=%s\n",
-                             req->dynamicLoad.request->action,
-                             req->dynamicLoad.filenames.text);
-             break;
-           }
+         {
+           char *filename;
+
+           filename = req->dynamicLoad.filenames.byteLen ?
+             req->dynamicLoad.filenames.text : exec_file;
+
+           switch (req->dynamicLoad.request->action)
+             {
+             case CDynamicLoadUpdateSymtab:
+               execute_command_1(1, queue, "exec-file %s", filename);
+               execute_command_1(1, queue, "symbol-file %s", filename);
+               break;
+             default:
+               printf_filtered("DynamicLoadRType: unknown action=%d, filename=%s\n",
+                               req->dynamicLoad.request->action,
+                               req->dynamicLoad.filenames.text);
+               break;
+             }
+         }
          break;
        default:
          fprintf(stderr, "Unknown Debugger request type = %d\n",
@@ -1309,6 +1317,8 @@ energize_initialize(energize_id, execarg)
 
   if (!execarg) execarg = "";
 
+  exec_file = strdup(execarg); /* Save for later */
+
   printf("\ngdb-debugger pid=%d\n", getpid()); /* XXX - debugging only */
   
   /* First establish the connection with the kernel. */