This is a fix for PR gdb/21164. The problem started to happen after:
commit
34c41c681f4a0a0dfe0405c7d2aecf458520557a
Author: Doug Evans <xdje42@gmail.com>
AuthorDate: Mon Dec 19 08:33:46 2016 -0800
New syntax for mt print symbols,msymbols,psymbols.
This change introduced new syntax for the mentioned commands, and
improved the parsing of arguments by using 'gdb_buildargv'. However,
it is necessary to check if the argv being built is not NULL, which
can happen if the user doesn't provide any arguments to these
commands.
gdb/ChangeLog:
2017-02-15 Sergio Durigan Junior <sergiodj@redhat.com>
PR gdb/21164
* psymtab.c (maintenance_print_psymbols): Verify if 'argv' is not
NULL before using it.
* symmisc.c (maintenance_print_symbols): Likewise.
(maintenance_print_msymbols): Likewise.
gdb/testsuite/ChangeLog:
gdb/ChangeLog:
2017-02-15 Sergio Durigan Junior <sergiodj@redhat.com>
PR gdb/21164
* gdb.base/maint.exp: Add testcases for when the commands do
not have arguments.
+2017-02-15 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ PR gdb/21164
+ * psymtab.c (maintenance_print_psymbols): Verify if 'argv' is not
+ NULL before using it.
+ * symmisc.c (maintenance_print_symbols): Likewise.
+ (maintenance_print_msymbols): Likewise.
+
2017-02-14 Tim Wiederhake <tim.wiederhake@intel.com>
* NEWS: Add record Python bindings entry.
argv = gdb_buildargv (args);
cleanups = make_cleanup_freeargv (argv);
- for (i = 0; argv[i] != NULL; ++i)
+ for (i = 0; argv != NULL && argv[i] != NULL; ++i)
{
if (strcmp (argv[i], "-pc") == 0)
{
stdio_file arg_outfile;
- if (argv[outfile_idx] != NULL)
+ if (argv != NULL && argv[outfile_idx] != NULL)
{
char *outfile_name;
argv = gdb_buildargv (args);
cleanups = make_cleanup_freeargv (argv);
- for (i = 0; argv[i] != NULL; ++i)
+ for (i = 0; argv != NULL && argv[i] != NULL; ++i)
{
if (strcmp (argv[i], "-pc") == 0)
{
stdio_file arg_outfile;
- if (argv[outfile_idx] != NULL)
+ if (argv != NULL && argv[outfile_idx] != NULL)
{
char *outfile_name;
argv = gdb_buildargv (args);
cleanups = make_cleanup_freeargv (argv);
- for (i = 0; argv[i] != NULL; ++i)
+ for (i = 0; argv != NULL && argv[i] != NULL; ++i)
{
if (strcmp (argv[i], "-objfile") == 0)
{
stdio_file arg_outfile;
- if (argv[outfile_idx] != NULL)
+ if (argv != NULL && argv[outfile_idx] != NULL)
{
char *outfile_name;
+2017-02-15 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ PR gdb/21164
+ * gdb.base/maint.exp: Add testcases for when the commands do
+ not have arguments.
+
2017-02-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* gdb.cp/chained-calls.exp: Use p instead of P.
#set timeout $oldtimeout
+# Test that the commands work without an argument. For this test, we
+# don't need an inferior loaded/running. See PR gdb/21164.
+gdb_exit
+gdb_start
+gdb_test_no_output "maint print symbols"
+gdb_test_no_output "maint print msymbols"
+gdb_test_no_output "maint print psymbols"
gdb_exit
return 0