PR mi/18833 gdb.execute ("set param value", to_string=True) will crash gdb if using MI
gdb/ChangeLog: * cli/cli-logging.c (pop_output_files): Don't restore redirection if MI-like. * mi/mi-out.c: #include "vec.h". (ui_filep): New type. (DEV_VEC_P (ui_filep)): New type. (struct ui_out_data) <buffer, original_buffer>: Delete. (struct ui_out_data) <streams>: New member. (mi_ui_out_impl): Add data_destroy field. (mi_field_string, mi_field_fmt): Update. (mi_flush, mi_redirect, field_separator): Update. (mi_open, mi_close): Update. (mi_out_buffered, mi_out_rewind, mi_out_put): Update. (mi_out_data_ctor, mi_out_data_dtor): New functions. (mi_out_new): Call mi_out_data_ctor. testsuite/gdb/ChangeLog: * lib/gdb.exp (skip_python_tests_prompt): Renamed from skip_python_tests. New arg prompt_regexp. (skip_python_tests): New function. * lib/mi-support.exp (mi_skip_python_tests): New function. * gdb.python/py-mi-objfile-gdb.py: New file. * gdb.python/py-mi-objfile.c: New file. * gdb.python/py-mi-objfile.exp: New file.
This commit is contained in:
parent
4e1626f5a8
commit
4d6cceb4e4
9 changed files with 234 additions and 47 deletions
27
gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
Normal file
27
gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# This file is part of the GDB testsuite.
|
||||
|
||||
import gdb
|
||||
|
||||
# PR 18833
|
||||
# We want to have two levels of redirection while MI is current_uiout.
|
||||
# This will create one for to_string=True and then another for the
|
||||
# parameter change notification.
|
||||
gdb.execute("set width 101", to_string=True)
|
||||
# And finally a command that will use the original MI stream, which in a
|
||||
# buggy gdb will use just-freed data.
|
||||
gdb.execute("list")
|
Loading…
Add table
Add a link
Reference in a new issue