-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>
|
2017-04-05 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
* break-catch-throw.c (handle_gnu_v3_exceptions): Constify
|
* break-catch-throw.c (handle_gnu_v3_exceptions): Constify
|
||||||
|
|
|
@ -60,15 +60,14 @@ struct trans {
|
||||||
|
|
||||||
static int procfs_trace = 0;
|
static int procfs_trace = 0;
|
||||||
static FILE *procfs_file = NULL;
|
static FILE *procfs_file = NULL;
|
||||||
static char *procfs_filename = "procfs_trace";
|
static char *procfs_filename;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
prepare_to_trace (void)
|
prepare_to_trace (void)
|
||||||
{
|
{
|
||||||
if (procfs_trace) /* if procfs tracing turned on */
|
if (procfs_trace) /* if procfs tracing turned on */
|
||||||
if (procfs_file == NULL) /* if output file not yet open */
|
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
|
static void
|
||||||
|
@ -785,6 +784,7 @@ Show tracing for /proc api calls."), NULL,
|
||||||
NULL, /* FIXME: i18n: */
|
NULL, /* FIXME: i18n: */
|
||||||
&setlist, &showlist);
|
&setlist, &showlist);
|
||||||
|
|
||||||
|
procfs_filename = xstrdup ("procfs_trace");
|
||||||
add_setshow_filename_cmd ("procfs-file", no_class, &procfs_filename, _("\
|
add_setshow_filename_cmd ("procfs-file", no_class, &procfs_filename, _("\
|
||||||
Set filename for /proc tracefile."), _("\
|
Set filename for /proc tracefile."), _("\
|
||||||
Show filename for /proc tracefile."), NULL,
|
Show filename for /proc tracefile."), NULL,
|
||||||
|
|
Loading…
Reference in New Issue