-Wwrite-strings: Fix Solaris "set procfs-file"
Compiling GDB with -Wwrite-strings flags this code in gdb/proc-api.c: static char *procfs_filename = "procfs_trace"; as needing a cast. However, this variable is a command variable, and as such it's incorrect to initialize it to a literal, since when you use the corresponding set command, gdb frees the old string... I didn't manage to fully build Solaris gdb (fails for other reasons), but I confirmed that the system GDB on Solaris 11 crashes when running this command: (gdb) set procfs-file foo Segmentation Fault (core dumped) So I don't think this commit can make it worse than the status quo. gdb/ChangeLog: 2017-04-05 Pedro Alves <palves@redhat.com> * proc-api.c (procfs_filename): Don't initialize procfs_filename. (prepare_to_trace): Assume procfs_filename is non-NULL. (_initialize_proc_api): Give procfs_filename a default value here.
This commit is contained in:
parent
63160a4350
commit
3e83a92009
|
@ -1,3 +1,10 @@
|
|||
2017-04-05 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* proc-api.c (procfs_filename): Don't initialize
|
||||
procfs_filename.
|
||||
(prepare_to_trace): Assume procfs_filename is non-NULL.
|
||||
(_initialize_proc_api): Give procfs_filename a default value here.
|
||||
|
||||
2017-04-05 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* break-catch-throw.c (handle_gnu_v3_exceptions): Constify
|
||||
|
|
|
@ -60,15 +60,14 @@ struct trans {
|
|||
|
||||
static int procfs_trace = 0;
|
||||
static FILE *procfs_file = NULL;
|
||||
static char *procfs_filename = "procfs_trace";
|
||||
static char *procfs_filename;
|
||||
|
||||
static void
|
||||
prepare_to_trace (void)
|
||||
{
|
||||
if (procfs_trace) /* if procfs tracing turned on */
|
||||
if (procfs_file == NULL) /* if output file not yet open */
|
||||
if (procfs_filename != NULL) /* if output filename known */
|
||||
procfs_file = fopen (procfs_filename, "a"); /* open output file */
|
||||
procfs_file = fopen (procfs_filename, "a"); /* open output file */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -785,6 +784,7 @@ Show tracing for /proc api calls."), NULL,
|
|||
NULL, /* FIXME: i18n: */
|
||||
&setlist, &showlist);
|
||||
|
||||
procfs_filename = xstrdup ("procfs_trace");
|
||||
add_setshow_filename_cmd ("procfs-file", no_class, &procfs_filename, _("\
|
||||
Set filename for /proc tracefile."), _("\
|
||||
Show filename for /proc tracefile."), NULL,
|
||||
|
|
Loading…
Reference in New Issue