Fix alias command not detecting non matching prefix & sometimes asserting.
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Sun, 23 Jun 2019 13:34:15 +0000 (15:34 +0200)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Tue, 25 Jun 2019 17:15:16 +0000 (19:15 +0200)
commitb65b566cdcb577edb57616c5b49a2f245b56325c
tree860272ce3962c954a3c78fca764c1537fe3327bf
parent9b444f9533c38016e4f2de0198c889b13a62d2bc
Fix alias command not detecting non matching prefix & sometimes asserting.

alias_command does not detect that the prefixes of the alias command and the
aliased command are not matching: it is comparing the alias prefix
with itself, instead of comparing it with the aliased command prefix.

This causes either the alias command to silently do nothing,
or to have GDB asserting:
    (gdb) alias assigne imprime limite-elements = set print elements
    ../../binutils-gdb/gdb/cli/cli-cmds.c:1552: internal-error: void alias_command(const char*, int): Assertion `c_command != NULL && c_command != (struct cmd_list_element *) -1' failed.
    A problem internal to GDB has been detected,

Fix the logic, and update gdb.base/alias.exp to test these cases.

gdb/ChangeLog
2019-06-25  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* cli/cli-cmds.c (alias_command): Compare the alias prefix
with the command prefix.

gdb/testsuite/ChangeLog
2019-06-25  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* gdb.base/alias.exp: Test non matching/non existing prefixes.
gdb/ChangeLog
gdb/cli/cli-cmds.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/alias.exp