From: Stu Grossman Date: Sat, 18 Jul 1992 00:29:40 +0000 (+0000) Subject: * energize.c: Second cut at DynamicLoad message handling. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b5fee91eae82ca826913bce69d4cedc622f394dd;p=binutils-gdb.git * energize.c: Second cut at DynamicLoad message handling. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f022039b581..4ae9e4488c9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/energize.c b/gdb/energize.c index 33ee5a883d1..9310bf9eebe 100644 --- a/gdb/energize.c +++ b/gdb/energize.c @@ -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. */