summaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* do not use python<version> subdir when including Python .h fileJoel Brobecker2011-01-311-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is preparation work for being able to build GDB with Python support on MinGW. So far, the "python<version>" subdirectory needs to be specified when including a Python header file. In order to do that, we have some special configury that tweaks the include path returned by python-config.py such that the use of the subdirectory in the include is necessary. This was done in order to protect ourselves from possible filename conflicts, since some of the filenames chosen by Python were a little generic. The problem is that this cannot work with a standard Python install on MinGW systems. On such systems, the .h files are located in <python_prefix>/include. So, in preparation for allowing us to build GDB on MinGW with Python support enabled, this patch changes the requirement to provide the "python<version>" subdirectory in the include directive. The positive consequence is that we no longer need to have a set of #include directives for each version of Python, since the include directive is now the same for all versions of Python. However, the downside is that we are losing the level of protection we were trying to achieve by forcing the subdirectory in the include directive. In order to reduce a bit the consequences of a possible conflict, this patch also changes the location where the -I/path/to/python switch goes, to be last in the list (suggested by Doug Evans). One last change is the fact that we are now including Python.h and all other Python include headers using angle brackets rather than double-quotes. This fixes a problem on case-insensitive systems where #include "Python.h" causes our gdb/python/python.h header to be included instead of Python's <Python.h> header. gdb/ChangeLog: * configure.ac: Remove fallback behavior for building against Python. Remove tweaking of Python include path. Add PYTHON_CPPFLAGS and PYTHON_LIBS substitution. (AC_TRY_LIBPYTHON): Adjust program used in linking test. If link is successful, set PYTHON_CPPFLAGS and PYTHON_LIBS. Always restore CPPFLAGS and LIBS after linking test. * configure: Regenerated. * Makefile.in (INTERNAL_CPPFLAGS): Add @PYTHON_CPPFLAGS@. (INSTALLED_LIBS, CLIBS): Add @PYTHON_LIBS@. * python/python-internal.h: Adjust includes of Python .h files.
* Add missing i18n markup in tracepoint.c:traceframe_walk_blocksJoel Brobecker2011-01-311-0/+5
| | | | | | | gdb/ChangeLog: * tracepoint.c (traceframe_walk_blocks): Add missing i18n markup in error message.
* fix typo during interactive_mode check in gdb_has_a_terminalJoel Brobecker2011-01-311-0/+5
| | | | | | | | | | | | | | | Discovered by Pierre Muller. gdb/ChangeLog: * inflow.c (gdb_has_a_terminal): Fix typo in interactive_mode value test. gdb/testsuite/ChangeLog: * gdb.base/interact.exp: Add extra tests that verify that the value of the interactive-mode setting does not change after the script is sourced.
* 2011-01-31 Yao Qi <yao@codesourcery.com>Yao Qi2011-01-301-0/+7
| | | | | | | * arm-linux-nat.c: Update calls to regcache_register_status instead of regcache_valid_p. * aix-thread.c: Likewise. * i386gnu-nat.c: Likewise.
* gdb/Jan Kratochvil2011-01-291-0/+6
| | | | | | | | | | Fix crash. * valops.c (compare_parameters): Verify TYPE_NFIELDS before touching TYPE_FIELD_ARTIFICIAL. gdb/testsuite/ * gdb.cp/noparam.exp: New file. * gdb.cp/noparam.cc: New file.
* * MAINTAINERS: Move myself from Responsible Maintainers to AuthorizedRichard Earnshaw2011-01-281-0/+5
| | | | Committers.
* gdb/Pedro Alves2011-01-281-0/+9
| | | | | | | | | | | | | * tracepoint.c (tfile_xfer_partial): If there's no traceframe selected, don't try iterating over the traceframe's blocks. (tfile_has_stack): If there's no traceframe selected, then there's no stack. (tfile_has_registers): If there's no traceframe selected, then there's no registers. gdb/testsuite/ * gdb.trace/tfile.exp: Test that with no traceframe selected, there's no stack or registers.
* gdb/Pedro Alves2011-01-281-0/+5
| | | | | * target.c (memory_xfer_partial): No need to restore shadows if we haven't read anything.
* gdb/Pedro Alves2011-01-281-0/+5
| | | | | * mips-tdep.c (mips_print_register): Use get_frame_register_value and val_print_scalar_formatted.
* gdb/Pedro Alves2011-01-271-0/+14
| | | | | | | | | | | | | | * tracepoint.c (tfile_read): New. (tfile_open): Use it. (tfile_get_traceframe_address): Use it. (tfile_trace_find): Use it. (walk_blocks_callback_func): New typedef. (match_blocktype): New function. (traceframe_walk_blocks): New function. (traceframe_find_block_type): New function. (tfile_fetch_registers, tfile_xfer_partial) (tfile_get_trace_state_variable_value): Use traceframe_find_block_type and tfile_read.
* * remote-mips.c: Add internationalization mark ups. RemoveKevin Buettner2011-01-261-0/+5
| | | | trailing \n from already marked up strings.
* gdbTom Tromey2011-01-261-0/+7
| | | | | | | | | | | * python/py-prettyprint.c (print_string_repr): Clear 'addressprint' option when calling val_print_string. (print_children): Handle Val_pretty_default. Clear 'addressprint' option when calling val_print_string. gdb/testsuite * gdb.python/py-prettyprint.exp (run_lang_tests): Ensure no blank space before string output. Add test for "set print pretty off" case.
* * python/python.c (gdbpy_solib_name): Use gdb_py_longest andTom Tromey2011-01-261-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GDB_PY_LL_ARG. * python/python-internal.h (GDB_PY_LL_ARG, GDB_PY_LLU_ARG): New macros. (gdb_py_longest, gdb_py_ulongest): New typedefs. (gdb_py_long_from_longest, gdb_py_long_from_ulongest) (gdb_py_long_as_ulongest): New defines. (gdb_py_object_from_longest, gdb_py_object_from_ulongest) (gdb_py_int_as_long): Declare. * python/py-value.c (valpy_lazy_string): Use gdb_py_longest, GDB_PY_LL_ARG, gdb_py_object_from_longest. (valpy_long): Add comment. * python/py-utils.c (get_addr_from_python): Use gdb_py_long_as_ulongest. Handle overflow properly. (gdb_py_object_from_longest): New function. (gdb_py_object_from_ulongest): Likewise. (gdb_py_int_as_long): Likewise. * python/py-type.c (typy_array): Use gdb_py_int_as_long. * python/py-symtab.c (salpy_get_pc): Use gdb_py_long_from_ulongest. (salpy_get_line): Use PyInt_FromLong. * python/py-param.c (set_parameter_value): Use gdb_py_int_as_long. * python/py-lazy-string.c (stpy_get_address): Use gdb_py_long_from_ulongest. * python/py-frame.c (frapy_pc): Use gdb_py_long_from_ulongest. * python/py-cmd.c (cmdpy_completer): Use gdb_py_int_as_long. * python/py-breakpoint.c (bppy_set_thread): Use gdb_py_int_as_long. (bppy_set_task): Likewise. (bppy_set_ignore_count): Likewise. (bppy_set_hit_count): Likewise. * python/py-block.c (blpy_get_start): Use gdb_py_object_from_ulongest. (blpy_get_end): Likewise. (gdbpy_block_for_pc): Use gdb_py_ulongest and GDB_PY_LLU_ARG.
* 2011-01-25 Mathieu Lacage <mathieu.lacage@inria.fr>Thiago Jung Bauermann2011-01-261-0/+7
| | | | | | | PR/symtab 11766: * gdb/objfiles.h (struct objfile) <addr_low>: New field. * gdb/solib.c (solib_read_symbols): Check for addr_low in equality test for objfile, initialize addr_low if needed.
* * tui/tui-regs.c (tui_register_format): Remove dead code.Pedro Alves2011-01-251-0/+4
|
* * printcmd.c (print_formatted): Use val_print_scalar_formattedPedro Alves2011-01-251-0/+17
| | | | | | | | | | | | | | | | instead of print_scalar_formatted. (print_scalar_formatted): Don't handle 's' format strings here, and add an assertion that we never see such format here. * valprint.h (val_print_scalar_formatted): Declare. * valprint.c (val_print_scalar_formatted): New. * c-valprint.c (c_val_print): Use val_print_scalar_formatted instead of print_scalar_formatted. * jv-valprint.c (java_val_print): Ditto. * p-valprint.c (pascal_val_print): Ditto. * ada-valprint.c (ada_val_print_1): Ditto. * f-valprint.c (f_val_print): Ditto. * infcmd.c (registers_info): Ditto. * m2-valprint.c (m2_val_print): Ditto.
* * m2-valprint.c (print_unbounded_array): PassPedro Alves2011-01-251-0/+6
| | | | | value_contents_for_printing rather than value_contents, to m2_print_array_contents. Also pass in the value.
* gdb/Jan Kratochvil2011-01-251-0/+5
| | | | | * dwarf2read.c (dwarf2_read_index, write_psymtabs_to_index) (save_gdb_index_command): Switch to .gdb_index version 4.
* * mi/mi-main.c (get_register): Use get_frame_register_value ratherPedro Alves2011-01-251-0/+5
| | | | than frame_register, and always pass a valid value to val_print.
* Centralize printing "<optimized out>".Pedro Alves2011-01-251-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | gdb/ * valprint.h (val_print_optimized_out): Declare. * cp-valprint.c (cp_print_value_fields): Use val_print_optimized_out. * jv-valprint.c (java_print_value_fields): Ditto. * p-valprint.c (pascal_object_print_value_fields): Ditto. * printcmd.c (print_formatted): Ditto. * valprint.c (valprint_check_validity): Ditto. (value_check_printable): Ditto. (val_print_optimized_out): New. gdb/doc/ * gdb.texinfo: s/value optimized out/optimized out/g gdb/testsuite/ * gdb.base/frame-args.exp: Adjust. * gdb.dwarf2/dw2-noloc.exp: Adjust. * gdb.dwarf2/dw2-inline-param.exp: Adjust. * gdb.dwarf2/pieces.exp: Adjust. * gdb.opt/clobbered-registers-O2.exp: Adjust. * gdb.opt/inline-locals.exp: Adjust. * gdb.threads/fork-child-threads.exp: Adjust.
* gdb/Pedro Alves2011-01-251-0/+5
| | | | | * infcmd.c (default_print_registers_info): Allocate values so to never pass a NULL value to val_print.
* * cp-valprint.c (cp_print_value): Treat the 'skip' local asPedro Alves2011-01-251-0/+11
| | | | | | | | | | boolean. Make sure to always pass a value that matches the contents buffer to callees. Preserve `address' for following iterations. * value.c (value_contents_for_printing_const): New. (value_address): Constify value argument. * value.h (value_contents_for_printing_const): Declare. (value_address): Constify value argument.
* * regcache.c (struct regcache_descr): RenamePedro Alves2011-01-251-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sizeof_raw_register_valid_p field to sizeof_raw_register_status, and sizeof_cooked_register_valid_p to sizeof_cooked_register_status. (init_regcache_descr): Adjust. (struct regcache): Rename register_valid_p field to register_status. (regcache_xmalloc_1, regcache_xfree, regcache_save) (do_cooked_read): Adjust. (regcache_valid_p): Rename to ... (regcache_register_status): ... this. Adjust. (regcache_invalidate): Adjust. (regcache_raw_read, regcache_cooked_read, regcache_raw_write): Adjust. (regcache_raw_supply): Adjust. If buf i NULL, mark the register as unavailable, not valid. (regcache_dump): Adjust. * regcache.h (enum register_status): New. (regcache_register_status): Declare. (regcache_invalidate): Delete declaration. * corelow.c (get_core_registers): Adjust. * tracepoint.c (tfile_fetch_registers): Adjust. * trad-frame.c (REG_VALUE): Rename to ... (TF_REG_VALUE): ... this. (REG_UNKNOWN): Rename to ... (TF_REG_UNKNOWN): ... this. (trad_frame_set_value, trad_frame_set_unknown): Adjust. * mi/mi-main.c (register_changed_p): Adjust.
* * regcache.c (struct regcache_descr): Remove outdated comment.Pedro Alves2011-01-251-0/+17
| | | | | | | | | | | | | | | | (init_regcache_descr): Remove sizeof_raw_register_valid_p overallocate hack. (regcache_xmalloc): Rename to ... (regcache_xmalloc_1): ... this. Add `readonly_p' parameter. Allocate the regcache type accordingly. (regcache_xmalloc): New as wrapper around regcache_xmalloc_1. (regcache_xfree): Asser the source is also readonly. Copy sizeof cooked registers, not raw. (regcache_dup_no_passthrough): Delete. (get_thread_arch_regcache): Use regcache_xmalloc_1. * h8300-tdep.c (h8300_push_dummy_call): Tweak comment to not mention obsolete write_register_bytes. * regcache.h (regcache_dup_no_passthrough): Delete declaration.
* Stop remote_read_bytes from handling partial reads itself.Pedro Alves2011-01-251-0/+17
| | | | | | | | | | | | | | | * remote-fileio.c: Include target.h. (remote_fileio_write_bytes): Delete. (remote_fileio_func_open, remote_fileio_func_write) (remote_fileio_func_rename, remote_fileio_func_unlink): Use target_read_memory. (remote_fileio_func_stat): Use target_read_memory and target_write_memory. (remote_fileio_func_gettimeofday): Use target_write_memory. (remote_fileio_func_system): Use target_read_memory. * remote.c (remote_write_bytes): Make it static. (remote_read_bytes): Don't handle partial reads here. * remote.h (remote_read_bytes): Delete declaration.
* Simplify XML parsing a bit.Pedro Alves2011-01-251-0/+18
| | | | | | | | | | | | | | | | * xml-support.h (gdb_xml_parse_quick): Declare. * xml-support.c (gdb_xml_create_parser_and_cleanup_1): Renamed from gdb_xml_create_parser_and_cleanup, and added `old_chain' parameter. (gdb_xml_create_parser_and_cleanup): Reimplement on top of gdb_xml_create_parser_and_cleanup_1. (gdb_xml_parse_quick): New. * memory-map.c (parse_memory_map): Use gdb_xml_parse_quick. * osdata.c (osdata_parse): Ditto. * remote.c (remote_threads_info): Ditto. * solib-target.c (solib_target_parse_libraries): Ditto. * xml-syscall.c (syscall_parse_xml): Ditto. * xml-tdesc.c (tdesc_parse_xml): Ditto.
* * configure.tgt (mips*-*-elf): New; just like mips*-*-*, butKevin Buettner2011-01-241-0/+6
| | | | | with remote-mips.o added to gdb_target_obs. * Makefile.in (ALL_TARGET_OBS): Add remote-mips.o.
* * ada-valprint.c (val_print_packed_array_elements): Pass thePedro Alves2011-01-241-0/+6
| | | | | correct struct value to val_print. (ada_val_print_1): Ditto.
* 2011-01-24 Pedro Alves <pedro@codesourcery.com>Pedro Alves2011-01-241-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't lose embedded_offset in printing routines throughout. gdb/ * valprint.h (val_print_array_elements): Change prototype. * valprint.c (val_print_array_elements): Add `embedded_offset' parameter, and adjust to pass it down to val_print, while passing `valaddr' or `address' unmodified. Take embedded_offset into account when checking repetitions. * c-valprint.c (c_val_print): Pass embedded_offset to val_print_array_elements instead of adjusting `valaddr' and `address'. * m2-valprint.c (m2_print_array_contents, m2_val_print): Pass embedded_offset to val_print_array_elements instead of adjusting `valaddr'. * p-lang.h (pascal_object_print_value_fields): Adjust prototype. * p-valprint.c (pascal_val_print): Pass embedded_offset to val_print_array_elements and pascal_object_print_value_fields instead of adjusting `valaddr'. (pascal_object_print_value_fields): Add `offset' parameter, and adjust to use it. (pascal_object_print_value): Add `offset' parameter, and adjust to use it. (pascal_object_print_static_field): Use value_contents_for_printing/value_embedded_offset, rather than value_contents. * ada-valprint.c (val_print_packed_array_elements): Add `offset' parameter, and adjust to use it. Use value_contents_for_printing/value_embedded_offset, rather than value_contents. (ada_val_print): Rename `valaddr0' parameter to `valaddr'. (ada_val_print_array): Add `offset' parameter, and adjust to use it. (ada_val_print_1): Rename `valaddr0' parameter to `valaddr', and `embedded_offset' to `offset'. Don't re-adjust `valaddr'. Instead work with offsets. Use value_contents_for_printing/value_embedded_offset, rather than value_contents. Change `defer_val_int' local type to CORE_ADDR, and use value_from_pointer to extract a target pointer, rather than value_from_longest. (print_variant_part): Add `offset' parameter. Replace `outer_valaddr' parameter by a new `outer_offset' parameter. Don't re-adjust `valaddr'. Instead pass down adjusted offsets. (ada_value_print): Use value_contents_for_printing/value_embedded_offset, rather than value_contents. (print_record): Add `offset' parameter, and adjust to pass it down. (print_field_values): Add `offset' parameter. Replace `outer_valaddr' parameter by a new `outer_offset' parameter. Don't re-adjust `valaddr'. Instead pass down adjusted offsets. Use value_contents_for_printing/value_embedded_offset, rather than value_contents. * d-valprint.c (dynamic_array_type): Use value_contents_for_printing/value_embedded_offset, rather than value_contents. * jv-valprint.c (java_print_value_fields): Add `offset' parameter. Don't re-adjust `valaddr'. Instead pass down adjusted offsets. (java_print_value_fields): Take `offset' into account. Don't re-adjust `valaddr'. Instead pass down adjusted offsets. (java_val_print): Take `embedded_offset' into account. Pass it to java_print_value_fields. * f-valprint.c (f77_print_array_1): Add `embedded_offset' parameter. Don't re-adjust `valaddr' or `address'. Instead pass down adjusted offsets. (f77_print_array): Add `embedded_offset' parameter. Pass it down. (f_val_print): Take `embedded_offset' into account. gdb/testsuite/ * gdb.base/printcmds.c (some_struct): New struct and instance. * gdb.base/printcmds.exp (test_print_repeats_embedded_array): New procedure. <global scope>: Call it.
* move handing of "set interactive-mode" to gdb_has_a_terminalJoel Brobecker2011-01-211-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The real purpose of this setting is really to override what the debugger would otherwise guess from checking the stdin settings. So it seems more natural to see this setting being handled inside gdb_has_a_terminal rather than input_is_terminal (which checks for other things, such as whether the input is stdin, for instance). This patch also adjust the command help and the associated section in the GDB Manual to be a little clearer about that. gdb/ChangeLog: * inflow.c: Include "gdbcmd.h". (interactive_mode): New static global, moved here from top.c. (show_interactive_mode): New function, moved here from top.c. use gdb_has_a_terminal instead of input_from_terminal_p to determine the current mode. (gdb_has_a_terminal): Add handling of the "iteractive-mode" setting. (_initialize_inflow): Add the "set/show interactive-mode" commands. Moved here from top.c, after having adjusted slightly the help text. * top.c (interactive_mode, show_interactive_mode): Delete, moved to inflow.c. (input_from_terminal_p): Remove handling of "interactive-mode" setting, moved to infow.c. (init_main): Remove creation of the "set/show interactive-mode" commands, moved to inflow.c. gdb/doc/ChangeLog: * gdb.texinfo (Other Misc Settings): Rework part of the documentation of the "set interactive mode" command.
* [NEWS/ia64-hpux] Add entry for native ia64-hpux supportJoel Brobecker2011-01-191-0/+4
| | | | | | gdb/ChangeLog: * NEWS: Add entry for native ia64-hpux support.
* gdbTom Tromey2011-01-191-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | PR mi/8618: * thread.c (free_thread): Free 'name'. (print_thread_info): Emit thread name. Change CLI output. (thread_name_command): New function. (do_captured_thread_select): Emit newline. (_initialize_thread): Register 'thread name' command. * target.h (struct target_ops) <to_thread_name>: New field. (target_thread_name): New macro. * target.c (update_current_target): Handle to_thread_name. * python/py-infthread.c (thpy_get_name): New function. (thpy_set_name): Likewise. (thread_object_getset): Add "name". * linux-nat.c (linux_nat_thread_name): New function. (linux_nat_add_target): Set to_thread_name. * gdbthread.h (struct thread_info) <name>: New field. gdb/doc * gdb.texinfo (Threads): Document thread name output and `thread name' command. (Threads In Python): Document Thread.name attribute. (GDB/MI Thread Commands): Document thread attributes. gdb/testsuite * gdb.python/py-infthread.exp: Add thread tests.
* fix printing of Ada wide characters on ppc-aixJoel Brobecker2011-01-181-0/+5
| | | | | | | | | | | | | Same problem as before: We were downcasting the character value from int to unsigned char, which caused an overflow. The reason why we did not see this problem before is probably related to the fact that we're using stabs on AIX and thus characters types are defined as a TYPE_CODE_INT (or TYPE_CODE_RANGE?). gdb/ChangeLog: * ada-valprint.c (ada_print_scalar): Remove unsigned char downcast. (ada_val_print_1): Likewise.
* [powerpc] breakpoint inserted past function endJoel Brobecker2011-01-181-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | On powerpc, the prologue scanner reads instruction after instruction, and just skips instructions that do not affect a frame. This means that it does not stop if if finds and unexpected instruction (which could possibly happen with optimization, I presume). To avoid scanning too many instructions, it tries to establish an upper limit. The upper limit is first computed using the debugging (line) info, but if that fails, it falls back on an arbitrary 100 bytes (or 25 instructions). The problem is that, if the function is shorter than those 25 instructions, we run the risk of skipping the entire function and returning a PC that's outside our function. In the event where we can find a symbol for a given PC (and therefore can determine function start and end addresses), but cannot find an upper limit using skip_prologue_using_sal, then we can at least limit make sure that the 25 instructions do not put us beyour our function. If it does, then further reduce the upper-limit to the end of the function. gdb/ChangeLog: * rs6000-tdep.c (rs6000_skip_prologue): Make sure that the prologue upper limit address is not greater than the function end address when the upper limit could not be computed using the debugging info.
* * cli/cli-cmds.c (apropos_command): Free the compiled regex. UseTom Tromey2011-01-171-0/+10
| | | | | | | | | get_regcomp_error. * utils.c: Include gdb_regex.h. (do_regfree_cleanup): New function. (make_regfree_cleanup): Likewise. (get_regcomp_error): Likewise. * gdb_regex.h (make_regfree_cleanup, get_regcomp_error): Declare.
* * cli/cli-cmds.c (apropos_command): Fix formatting. Don't callTom Tromey2011-01-171-0/+5
| | | | re_compile_fastmap.
* * p-exp.y (intvar): New static variable, used to set CURRENT_TYPEPierre Muller2011-01-171-0/+12
| | | | | | | | | | | for internal variables. (last_was_structop): New static variable. (COMPLETE): New token. (field_exp): New rule to group all '.' suffix handling. Add mark_struct_expression calls when approriate to be able to correctly find fields for completion. (yylex): Adapt to handle field completion and set INTVAR when required.
* 2011-01-14 Yao Qi <yao@codesourcery.com>Yao Qi2011-01-141-0/+5
| | | | | * arm-tdep.c (arm_register_reggroup_p): FPS register is in save_reggroup, restore_reggroup and all_reggroup.
* Fix printing of Wide_Character & Wide_Wide_Character entities.Joel Brobecker2011-01-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wide_Characters and Wide_Wide_Characters are incorrectly printed. Consider for instance: Medium : Wide_Character := Wide_Character'Val(16#dead#); Trying to print the value of this variable yields: (gdb) p medium $1 = 57005 '["ad"]' The integer value is correct (57005 = 0xdead), but the character representation is not, it should be: $1 = 57005 '["dead"]' Same for Wide_Wide_Characters. There were two issues: (a) The first issue was in ada-valprint, where we were assuming that character types were 1 byte long; (b) The second problem was in c-valprint, where we were down-casting the integer value of the character to type `unsigned char', causing use to lose all but the lowest byte. gdb/ChangeLog: * ada-valprint. (ada_printchar): Use the correct type length in call to ada_emit_char. * c-valprint.c (c_val_print): Remove cast in call to LA_PRINT_CHAR.
* * solib-som.h (hpux_major_release): Declare variable here.Pierre Muller2011-01-141-0/+13
| | | | | | | | | | | | * solib-som.c: Remove <sys/utsname.h> header. (DEFAULT_HPUX_MAJOR_RELEASE): New macro. (hpux_major_release): Make global, change default value to DEFAULT_HPUX_MAJOR_RELEASE. (get_hpux_major_release): Simply return HPUX_MAJOR_RELEASE. * hppa-hpux-nat.c: Add <sys/utsname.h> include. Add "solib-som.h" header. (set_hpux_major_release): New function. (_initialize_hppa_hpux_nat): Call set_hpux_major_release.
* gdb: extend Linux osabi matchMike Frysinger2011-01-141-0/+4
| | | | | | The current osabi default matching misses all *-uclinux tuples. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* fix ARI warnings introduced by ia64-hpux patchesJoel Brobecker2011-01-141-0/+10
| | | | | | | | | | | | gdb/ChangeLog: * ia64-hpux-nat.c (ia64_hpux_fetch_register): Remove trailing new-line at end of warning message. (ia64_hpux_store_register): Remove trailing new-line at end of error message. * ia64-hpux-tdep.c: Rephrase comment. * solib-ia64-hpux.c (struct dld_info): Change type of field dld_flags from "long long" to ULONGEST.
* * target.h (deprecated_child_ops): Delete declaration.Pedro Alves2011-01-141-0/+5
| | | | * target.c (deprecated_child_ops): Delete definition.
* * Makefile.in (hpux-thread.o): Delete rule.Pedro Alves2011-01-141-0/+10
| | | | | | | | | * configure.ac: Don't check for HPUX DCE threads support. * configure, config.in: Regenerate. * hppa-hpux-nat.c (child_suppress_run): Delete. (hppa_hpux_child_can_run): Delete. (_initialize_hppa_hpux_nat): Don't override to_can_run. * hpux-thread.c: Delete.
* delete hpux_pid_to_str (unused)Joel Brobecker2011-01-131-0/+4
| | | | | | | | | | | | | | This function is unused, and the default formatting routine does just fine, I think. On pa-hpux: [New process 12565, lwp 2513] [New process 12565, lwp 2514] So this patch deletes it. gdb/ChangeLog: * hpux-thread.c (hpux_pid_to_str): Delete.
* [Ada] Fix printing of Wide_Wide_StringsJoel Brobecker2011-01-131-0/+6
| | | | | | | | | | | | | | | | | | This fixes the printing of Wide_Wide_String objects. For instance, consider: My_WWS : Wide_Wide_String := " helo"; Before this patch is applied, GDB prints: (gdb) print my_wws $1 = " ["00"]h["00"]e" gdb/ChangeLog: * ada-valprint.c (ada_emit_char): Remove strange code. Check that c is <= UCHAR_MAX before passing it to isascii. (char_at): Do not assume that TYPE_LEN is either 1 or 2.
* problem sourcing GDB script in interactive-mode onJoel Brobecker2011-01-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When interactive-mode is not auto, GDB always uses that setting to determine whether to act as if the input stream is a terminal or not. However, this setting should only be honored if the input stream is the standard input stream. Otherwise, we run into trouble while source-ing a GDB script, as shown below (on x86_64-linux): % cat script print 1 print 2 % gdb -q (gdb) set interactive-mode on (gdb) source script (gdb) print 3 $1 = 3 The lack of output and the fact that the "print 3" command returned a value saved in $1 (as opposed to $3) indicates that the script was not even evaluated at all. gdb/ChangeLog: * top.c (input_from_terminal_p): Restrict the use of interactive_mode to the case where instream is stdin. gdb/testsuite/ChangeLog: * gdb.base/interact.exp: New testcase.
* [ia64-hpux] inferior function call supportJoel Brobecker2011-01-131-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have two stacks to deal with on ia64, when making a function call. The first is the usual stack frame, and the second is the register stack frame. On ia64-linux, the register frame is setup by adjusting the BSP register. Unfortunately for us, the HP-UX kernel does not allow the debugger to change the value of the BSP. To work around that limitation, the method I am using here is to push some assembly code on the stack. This assembly code contains, among other things, a call to the alloc insn, which sets up our frame for us. An extensive comment in ia64-hpux-tdep.c explains the entire procedure. Despite this approach, most of the code in ia64-tdep.c which sets up the function call is still applicable - and only a few things need to be done differently: For instance, instead of changing the BSP, we do nothing. We store the parameters at a different location, etc. So this patch also adjusts the inf-call code in ia64-tdep.c to make it a little more extensible: I create a new ia64_infcall_ops structure which allows an ABI to define how the few things that need to be differentiated. Another element that turned out to be necessary but is more of a detail is that the computation of the linkage pointer needs to be handled specially for symbols inside shared libraries. This is especially visible when calling malloc, which happens everytime memory needs to be allocated in inferior memory... The special treatment included again the necessity to use some routines only available on the host. So another target object TARGET_OBJECT_HPUX_SOLIB_GOT was created for that purpose. gdb/ChangeLog: * ia64-tdep.h (struct regcache): Forward declare. (struct ia64_infcall_ops): New struct type. (struct gdbarch_tdep): New fields "find_global_pointer_from_solib" and "infcall_ops". * ia64-tdep.c (ia64_find_global_pointer_from_dynamic_section): Renames ia64_find_global_pointer. (ia64_find_global_pointer, ia64_allocate_new_rse_frame) (ia64_store_argument_in_slot, ia64_set_function_addr: New function. (ia64_push_dummy_call): Adjust to use the new tdep ia64_infocall_ops methods. (ia64_infcall_ops): New static global constant. (ia64_gdbarch_init): Set tdep->infcall_ops. * ia64-hpux-nat.c (ia64_hpux_xfer_solib_got): New function. (ia64_hpux_xfer_partial): Add TARGET_OBJECT_HPUX_SOLIB_GOT handing. * ia64-hpux-tdep.c: Include "regcache.h", "gdbcore.h" and "inferior.h". (ia64_hpux_dummy_code): New static global constant. (ia64_hpux_push_dummy_code, ia64_hpux_allocate_new_rse_frame) (ia64_hpux_store_argument_in_slot, ia64_hpux_set_function_addr) (ia64_hpux_dummy_id, ia64_hpux_find_global_pointer_from_solib): New function. (ia64_hpux_infcall_ops): New static global constant. (ia64_hpux_init_abi): Install gdbarch and tdep methods needed for inferior function calls to work properly on ia64-hpux.
* [ia64-hpux] unwinding bsp value from system callJoel Brobecker2011-01-131-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes unwinding from a thread that is stopped inside a system call. This can be seen when switching to a thread that is stopped doing a pthread_cond_wait, for instance... The comments inside the code should explain what is happening in our case (the HP-UX exception in the case of system calls): Under certain circumstances (program stopped inside syscall), the offset to apply to the current BSP in order to compute the previous BSP is not the usual CFM & 0x7f. We parts in this patch: 1. Figuring out that we are stopped inside a syscal: This requires a TT_LWP_RUREGS ttrace call, which is not directly possible from ia64-tdep.c. So use defined a new TARGET_OBJECT_HPUX_UREGS object to request it from the -nat side. 2. Add a gdbarch_tdep method that allows us to change the default behavior on ia64-hpux, permitting us to have a different "size of register frame" in that one particular case. gdb/ChangeLog: * target.h (enum target_object): Add TARGET_OBJECT_HPUX_UREGS. * ia64-tdep.h (struct frame_info): forward declaration. (struct gdbarch_tdep): Add field size_of_register_frame. * ia64-tdep.c (ia64_access_reg): Use tdep->size_of_register_frame to determine the size of the register frame. (ia64_size_of_register_frame): New function. (ia64_gdbarch_init): Set tdep->size_of_register_frame. * ia64-hpux-tdep.c: Include "target.h" and "frame.h". (IA64_HPUX_UREG_REASON): New macro. (ia64_hpux_stopped_in_syscall, ia64_hpux_size_of_register_frame): New functions. (ia64_hpux_init_abi): Set tdep->size_of_register_frame. * ia64-hpux-nat.c (ia64_hpux_xfer_uregs): New function. (ia64_hpux_xfer_partial): Add handling of TARGET_OBJECT_HPUX_UREGS objects.
* port GDB to ia64-hpux (native).Joel Brobecker2011-01-131-0/+13
| | | | | | | | | | | | | | | | | | | | ChangeLog: * configure.ac: Remove readline, mmalloc, and gdb from noconfigdirs for ia64-hpux. * configure: Regenerate. gdb/ChangeLog: * config/ia64/hpux.mh, ia64-hpux-nat.c, ia64-hpux-tdep.c, ia64-hpux-tdep.h, solib-ia64-hpux.c, solib-ia64-hpux.h: New files. * configure.host: Add handling for ia64-hpux hosts. Add associated floatformats. * configure.tgt: Add handling for ia64-hpux targets. * Makefile.in (ALL_64_TARGET_OBS): Add ia64-hpux-tdep.o. (HFILES_NO_SRCDIR): Add ia64-hpux-tdep.h. (ALLDEPFILES): Add ia64-hpux-nat.c ia64-hpux-tdep.c.