fbb8f2990c
* python/python-internal.h (apply_varobj_pretty_printer): Update definition. (python_string_to_target_python_string): Add definition. * python/python-utils.c (unicode_to_encoded_python_string) (unicode_to_target_python_string) (python_string_to_target_python_string): New Functions. * python/python-prettyprint.c (pretty_print_one_value): Likewise. (print_string_repr): Refactor to logic to account for PyObject returned strings. (apply_varobj_pretty_printer): Likewise. * python/python-value.c (valpy_string): Parse length keyword. Use length keyword in LA_GET_STRING. * varobj.c (value_get_print_value): Refactor logic to account for PyObject returned strings. * c-lang.c (c_get_string): If the length parameter is specified, use that. Return value in characters. Update comments. * language.h: Update c_get_string prototype comments. 2009-07-10 Phil Muldoon <pmuldoon@redhat.com> * gdb.texinfo (Values From Inferior): Add length parameter description. 2009-07-10 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/python-prettyprint.c: Add counted null string structure. * gdb.python/python-prettyprint.exp: Print null string. Test for embedded nulls. * gdb.python/python-prettyprint.py (pp_ns): New Function. * gdb.python/python-value.exp (test_value_in_inferior): Add variable length string fetch tests. * gdb.python/python-value.c (main): Add strings for string fetch tests.
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/* This testcase is part of GDB, the GNU debugger.
|
|
|
|
Copyright 2008, 2009 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/>. */
|
|
|
|
struct s
|
|
{
|
|
int a;
|
|
int b;
|
|
};
|
|
|
|
union u
|
|
{
|
|
int a;
|
|
float b;
|
|
};
|
|
|
|
enum e
|
|
{
|
|
ONE = 1,
|
|
TWO = 2
|
|
};
|
|
|
|
typedef struct s *PTR;
|
|
|
|
enum e evalue = TWO;
|
|
|
|
int
|
|
main (int argc, char *argv[])
|
|
{
|
|
char *cp = argv[0]; /* Prevent gcc from optimizing argv[] out. */
|
|
struct s s;
|
|
union u u;
|
|
PTR x = &s;
|
|
char st[17] = "divide et impera";
|
|
char nullst[17] = "divide\0et\0impera";
|
|
|
|
s.a = 3;
|
|
s.b = 5;
|
|
u.a = 7;
|
|
|
|
return 0; /* break to inspect struct and union */
|
|
}
|