gdb/maint: add core file name to 'maint info program-spaces' output
Each program space can have an associated core file. Include this information in the output of 'maint info program-spaces'.
This commit is contained in:
parent
740a579fd5
commit
5d80df4a10
3 changed files with 26 additions and 4 deletions
4
gdb/NEWS
4
gdb/NEWS
|
@ -178,6 +178,10 @@ set debug solib-frv on|off
|
|||
show debug solib-frv
|
||||
Removed in favor of "set/show debug solib".
|
||||
|
||||
maintenance info program-spaces
|
||||
This command now includes a 'Core File' column which indicates the
|
||||
name of the core file associated with each program space.
|
||||
|
||||
* New targets
|
||||
|
||||
GNU/Linux/LoongArch (gdbserver) loongarch*-*-linux*
|
||||
|
|
|
@ -3465,6 +3465,10 @@ the program space number assigned by @value{GDBN}
|
|||
the name of the executable loaded into the program space, with e.g.,
|
||||
the @code{file} command.
|
||||
|
||||
@item
|
||||
the name of the core file loaded into the program space, with e.g.,
|
||||
the @code{core-file} command.
|
||||
|
||||
@end enumerate
|
||||
|
||||
@noindent
|
||||
|
@ -3477,7 +3481,7 @@ example, the list of inferiors bound to the program space.
|
|||
|
||||
@smallexample
|
||||
(@value{GDBP}) maint info program-spaces
|
||||
Id Executable
|
||||
Id Executable Core File
|
||||
* 1 hello
|
||||
2 goodbye
|
||||
Bound inferiors: ID 1 (process 21561)
|
||||
|
@ -3491,7 +3495,7 @@ the parent and child processes of a @code{vfork} call. For example,
|
|||
|
||||
@smallexample
|
||||
(@value{GDBP}) maint info program-spaces
|
||||
Id Executable
|
||||
Id Executable Core File
|
||||
* 1 vfork-test
|
||||
Bound inferiors: ID 2 (process 18050), ID 1 (process 18045)
|
||||
@end smallexample
|
||||
|
|
|
@ -251,22 +251,30 @@ print_program_space (struct ui_out *uiout, int requested)
|
|||
{
|
||||
int count = 0;
|
||||
|
||||
/* Start with a minimum width of 17 for the executable name column. */
|
||||
size_t longest_exec_name = 17;
|
||||
|
||||
/* Compute number of pspaces we will print. */
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
{
|
||||
if (requested != -1 && pspace->num != requested)
|
||||
continue;
|
||||
|
||||
if (pspace->exec_filename != nullptr)
|
||||
longest_exec_name = std::max (strlen (pspace->exec_filename.get ()),
|
||||
longest_exec_name);
|
||||
|
||||
++count;
|
||||
}
|
||||
|
||||
/* There should always be at least one. */
|
||||
gdb_assert (count > 0);
|
||||
|
||||
ui_out_emit_table table_emitter (uiout, 3, count, "pspaces");
|
||||
ui_out_emit_table table_emitter (uiout, 4, count, "pspaces");
|
||||
uiout->table_header (1, ui_left, "current", "");
|
||||
uiout->table_header (4, ui_left, "id", "Id");
|
||||
uiout->table_header (17, ui_left, "exec", "Executable");
|
||||
uiout->table_header (longest_exec_name, ui_left, "exec", "Executable");
|
||||
uiout->table_header (17, ui_left, "core", "Core File");
|
||||
uiout->table_body ();
|
||||
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
|
@ -291,6 +299,12 @@ print_program_space (struct ui_out *uiout, int requested)
|
|||
else
|
||||
uiout->field_skip ("exec");
|
||||
|
||||
if (pspace->cbfd != nullptr)
|
||||
uiout->field_string ("core", bfd_get_filename (pspace->cbfd.get ()),
|
||||
file_name_style.style ());
|
||||
else
|
||||
uiout->field_skip ("core");
|
||||
|
||||
/* Print extra info that doesn't really fit in tabular form.
|
||||
Currently, we print the list of inferiors bound to a pspace.
|
||||
There can be more than one inferior bound to the same pspace,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue