Handle correctly passing a bad interpreter name to new-ui
authorSimon Marchi <simon.marchi@ericsson.com>
Mon, 25 Jul 2016 15:01:54 +0000 (11:01 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Mon, 25 Jul 2016 15:01:54 +0000 (11:01 -0400)
commit8194e927cc66e8cceb9890240ad75363b3ca6d53
tree78d5de04cfbaff40c14511416e12885a4295527f
parent0e1a6a5169023ee0c19de2c9160b469e43634b21
Handle correctly passing a bad interpreter name to new-ui

When a bad interpreter name is passed to new-ui, such as:

  (gdb)  new-ui bloop /dev/pts/10

A partially created UI is left in the UI list, with interp set to NULL.
Trying to do anything that will print on this UI (such as "start") will
cause a segmentation fault.

Changes in v2:

  - Use with_test_prefix to namespace test procedures
  - Give an explicit stable test name
  - Add a "bad terminal path" test
  - Remove useless runto_main
  - Add missing intro comments

I did not factor out the pty spawn, as there is some magic involved I
don't quite understand.  But it wouldn't bring that much anyway.

gdb/ChangeLog:

* top.h (make_delete_ui_cleanup): New declaration.
* top.c (delete_ui_cleanup): New function.
(make_delete_ui_cleanup): New function.
(new_ui_command): Create restore_ui cleanup earlier, create a
delete_ui cleanup and discard it on success.

gdb/testsuite/ChangeLog:

* gdb.base/new-ui.exp (do_test_invalid_args): New
procedure.
gdb/ChangeLog
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/new-ui.exp
gdb/top.c
gdb/top.h