[PR gdb/27393] set directories: handle empty dirs.
authorLancelot SIX <lsix@lancelotsix.com>
Thu, 25 Feb 2021 00:30:49 +0000 (00:30 +0000)
committerLancelot SIX <lsix@lancelotsix.com>
Sat, 27 Feb 2021 14:29:39 +0000 (14:29 +0000)
commitbb3a4efe13c0bd9a7b15ecd02ddb966870a03bd0
tree2fba83defaddb1b33723dd84e7c3276a5c3c2603
parent573dc0cc43f2c3ce4d28ec1aa1bf05fc43810cda
[PR gdb/27393] set directories: handle empty dirs.

As reported in gdb/27393, the 'directory' and 'set directories' commands
fail when parsing an empty dir name:

    (gdb) set directories ""
    /home/lsix/dev/gnu/binutils-gdb/gdbsupport/pathstuff.cc:132: internal-error: gdb::unique_xmalloc_ptr<char> gdb_abspath(const char*): Assertion `path != NULL && path[0] != '\0'' failed.

or

    (gdb) dir :
    /home/lsix/dev/gnu/binutils-gdb/gdbsupport/pathstuff.cc:132: internal-error: gdb::unique_xmalloc_ptr<char> gdb_abspath(const char*): Assertion `path != NULL && path[0] != '\0'' failed.

This patch fixes this issue by ignoring any attempt to add an empty
name to the source directories list.  'set dir ""' will reset the
directories list the same way 'set dir' would do it.

Tested on x86_64.
gdb/ChangeLog
gdb/source.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/source-dir.exp