aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-09-17PR gdb/15911: "info threads" changes the default source and line (for ↵Pedro Alves21-36/+194
"break", "list") "info threads" changes the default source for "break" and "list", to whatever the location of the first/bottom thread in the thread list is... (gdb) b start (gdb) c ... (gdb) list *lists "start"* (gdb) b 23 Breakpoint 3 at 0x400614: file test.c, line 23. (gdb) info threads Id Target Id Frame * 2 Thread 0x7ffff7fcb700 (LWP 1760) "test" start (arg=0x0) at test.c:23 1 Thread 0x7ffff7fcc740 (LWP 1748) "test" 0x000000323dc08e60 in pthread_join (threadid=140737353922304, thread_return=0x0) at pthread_join.c:93 (gdb) b 23 Breakpoint 4 at 0x323dc08d90: file pthread_join.c, line 23. ^^^^^^^^^^^^^^^ (gdb) list 93 lll_wait_tid (pd->tid); 94 95 96 /* Restore cancellation mode. */ 97 CANCEL_RESET (oldtype); 98 99 /* Remove the handler. */ 100 pthread_cleanup_pop (0); 101 102 The issue is that print_stack_frame always sets the current sal to the frame's sal. print_frame_info (which print_stack_frame calls to do most of the work) also sets the last displayed sal, but only if print_what isn't LOCATION. Now the call in question, from within thread.c:print_thread_info, does pass in LOCATION as print_what, but print_stack_frame doesn't have the same check print_frame_info has. We could consider adding it, but setting these globals depending on print_what isn't very clean, IMO. What we have is two logically distinct operations mixed in the same function(s): #1 - print frame, in the format specified by {print_what, print_level and print_args}. #2 - We're displaying a frame to the user, and I want the default sal to point here, because the program stopped here, or the user did some context-changing command (up, down, etc.). So I added a new parameter to print_stack_frame & friends for point #2, and went through all calls in the tree adjusting as necessary. Tested on x86_64 Fedora 17. gdb/ 2013-09-17 Pedro Alves <palves@redhat.com> PR gdb/15911 * ada-tasks.c (task_command_1): Adjust call to print_stack_frame. * bsd-kvm.c (bsd_kvm_open, bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd): * corelow.c (core_open): * frame.h (print_stack_frame, print_frame_info): New 'set_current_sal' parameter. * infcmd.c (finish_command, kill_command): Adjust call to print_stack_frame. * inferior.c (inferior_command): Likewise. * infrun.c (normal_stop): Likewise. * linux-fork.c (linux_fork_context): Likewise. * record-full.c (record_full_goto_entry, record_full_restore): Likewise. * remote-mips.c (common_open): Likewise. * stack.c (print_stack_frame): New 'set_current_sal' parameter. Use it. (print_frame_info): New 'set_current_sal' parameter. Set the last displayed sal depending on the new paremeter instead of looking at print_what. (backtrace_command_1, select_and_print_frame, frame_command) (current_frame_command, up_command, down_command): Adjust call to print_stack_frame. * thread.c (print_thread_info, restore_selected_frame) (do_captured_thread_select): Adjust call to print_stack_frame. * tracepoint.c (tfind_1): Likewise. * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames) (mi_cmd_stack_info_frame): Likewise. * mi/mi-interp.c (mi_on_normal_stop): Likewise. * mi/mi-main.c (mi_cmd_exec_return, mi_cmd_trace_find): Likewise. gdb/testsuite/ * gdb.threads/info-threads-cur-sal-2.c: New file. * gdb.threads/info-threads-cur-sal.c: New file. * gdb.threads/info-threads-cur-sal.exp: New file.
2013-09-17 Fix ChangeLog entry missing a ':' char.Luis Machado1-1/+1
2013-09-17 gdbserver/ChangeLogJiong Wang2-1/+5
* linux-tile-low.c (tile_regsets): Modify the size field to 64-bit for each register.
2013-09-17 PR ld/15957Nick Clifton2-6/+19
* deffilep.y (def_file_add_directive): Avoid readin past end of buffer.
2013-09-172013-09-16 Jiong Wang <jiwang@tilera.com>Jiong Wang2-1/+5
gdbserver/ChangeLog * configure.srv <tilegx*-*-linux*>: Remove linux-osdata.o from and add linux-tile-low.o to srv_tgtobj.
2013-09-17opcodes/Richard Sandiford5-1/+13
* s390-opc.txt (clih): Make the immediate unsigned. gas/testsuite/ * gas/s390/zarch-z196.s, gas/s390/zarch-z196.d: Test CLIH with 4000000000.
2013-09-17gdb/testsuite/Yao Qi3-2/+18
* gdb.base/catch-load.c: Remove the include of "dlfcn.h". [__WIN32__]: Include "windows.h" and define macro dlopen and dlclose. [!__WIN32__]: Include "dlfcn.h". * gdb.base/catch-load.exp (one_catch_load_test): Match directory separator.
2013-09-17daily updateAlan Modra1-1/+1
2013-09-16 * lib/gdb.exp (using_fission): New proc.Doug Evans3-0/+19
* gdb.base/info-macros.exp: Skip test if using Fission.
2013-09-16 * gdb.base/break-interp.exp: Fix indentation.Doug Evans2-1/+5
2013-09-16The error message in the function was sayingSergio Durigan Junior2-1/+6
"You should provide one parameter..." while it should be saying "... one argument...". Replaced. 2013-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * value.c (isvoid_internal_fn): Replace "parameter" with "argument".
2013-09-16 * README: Update references to writing code for GDB.Stan Shebs11-8363/+39
* configure.ac (build_warnings): Remove obsolete comment. * configure: Regenerate. * gdbarch.sh: Remove references to gdbint.texinfo. * gdbarch.h: Regenerate. * gdbtypes.c (objfile_type): Remove comments referencing internals manual and D10V. [gdb/doc] Remove the internals manual gdbint.texinfo. * Makefile.in (INFO_DEPS): Remove gdbint.info. (PDFFILES): Remove gdbint.pdf. (HTMLFILES): Remove gdbint/index.html. (HTMLFILES_INSTALL): Remove gdbint. (GDBINT_DOC_FILES): Remove. (dvi): Remove gdbint.dvi. (ps): Remove gdbint.ps. * gdbint.texinfo: Remove file. * gdb.texinfo (Maintenance Commands): Remove reference to gdbint.
2013-09-16Based on the discussion at:Sergio Durigan Junior8-0/+152
<https://sourceware.org/ml/gdb-patches/2013-09/msg00301.html> <https://sourceware.org/ml/gdb-patches/2013-09/msg00383.html> This patch adds a new convenience function called $_isvoid, whose only purpose is to check whether an expression is void or not. This became necessary because the new convenience variable $_exitsignal (not yet approved) has a mutual exclusive behavior with $_exitcode, i.e., when one is "defined" (i.e., non-void), the other is cleared (i.e., becomes void). Doug wanted a way to identify which variable to use, and checking for voidness is the obvious solution. It is worth mentioning that my first attempt, after a conversation with Doug, was to actually implement a new $_isdefined() convenience function. I would do that (for convenience variables) by calling lookup_only_internalvar. However, I found a few problems: - Whenever I called $_isdefined ($variable), $variable became defined (with a void value), and $_isdefined always returned true. - Then, I tried to implement $_isdefined ("variable"), and do the "$" + "variable" inside GDB, thus making it impossible for GDB to create the convenience variable. However, it was hard to extract the string without having to mess with values and their idiossincrasies. Therefore, I decided to abandon this attempt (specially because I didn't want to spend too much time struggling with it). Anyway, after talking to Doug again we decided that it would be easier to implement $_isvoid, and this will probably help in cases like <http://stackoverflow.com/questions/3744554/testing-if-a-gdb-convenience-variable-is-defined>. I wrote a NEWS entry for it, and some new lines on the documentation. gdb/ 2013-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * NEWS: Mention new convenience function $_isvoid. * value.c (isvoid_internal_fn): New function. (_initialize_values): Add new convenience function $_isvoid. gdb/doc/ 2013-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.texinfo (Convenience Functions): Mention new convenience function $_isvoid. gdb/testsuite/ 2013-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.base/gdbvars.c (foo_void): New function. (foo_int): Likewise. * gdb.base/gdbvars.exp (test_convenience_functions): New function. Call it.
2013-09-16gdbserver, aarch64: Zero out regs in aarch64_linux_set_debug_regs.Will Newton2-0/+6
Apply the same fix that was applied to aarch64-linux-nat.c. 2013-09-16 Will Newton <will.newton@linaro.org> * linux-aarch64-low.c (aarch64_linux_set_debug_regs): Zero out regs.
2013-09-16 * arm-linux-tdep.c: Add "elf/common.h" header.Pierre Muller3-6/+14
Remove AT_HWCAP macro definintion as it is provided in added include file. * s390-tdep.c: Remove system header <elf.h> Add "elf/common.h" header for AT_HWCAP definition. (s390_core_read_description): Use correct CORE_ADDR for hwcap local variable used as third parameter of function target_auxv_search.
2013-09-16gas/config/tc-arm.c: Fix parsing of NEON load/store element sizes.Will Newton8-0/+47
The existing code would accept VLD2.64 and similar undefined instructions. gas/ChangeLog: 2013-09-16 Will Newton <will.newton@linaro.org> * config/tc-arm.c (do_neon_ld_st_interleave): Add constraint disallowing element size 64 with interleave other than 1. gas/testsuite/ChangeLog: 2013-09-16 Will Newton <will.newton@linaro.org> * gas/arm/neon-ldst-es.d: Add VLD1.64 instructions. * gas/arm/neon-ldst-es.s: Likewise. * testsuite/gas/arm/neon-ldst-es-bad.d: New file. * testsuite/gas/arm/neon-ldst-es-bad.l: Likewise. * testsuite/gas/arm/neon-ldst-es-bad.s: Likewise.
2013-09-16daily updateAlan Modra1-1/+1
2013-09-15daily updateAlan Modra1-1/+1
2013-09-14 * common/filestuff.c (gdb_fopen_cloexec): Do not try to use "e"Pierre Muller2-1/+14
mode if operating system doesn't know O_CLOEXEC.
2013-09-14daily updateAlan Modra1-1/+1
2013-09-13Code cleanup: Move variable.Jan Kratochvil2-1/+7
gdb/ 2013-09-13 Jan Kratochvil <jan.kratochvil@redhat.com> Code cleanup. * symfile.c (reread_symbols): Move variable obfd_filename to a more inner block.
2013-09-13gdb/ChangeLog:Ulrich Weigand21-23/+921
2013-09-13 Andreas Arnez <arnez@linux.vnet.ibm.com> * NEWS: Mention TDB support. * features/s390-tdb.xml: New file. * features/s390-te-linux64.xml: New file. * features/s390x-te-linux64.xml: New file. * features/Makefile (WHICH): Add new tdescs above. (s390-te-linux64-expedite): Set. (s390x-te-linux64-expedite): Set. * features/s390-te-linux64.c: New file (generated). * features/s390x-te-linux64.c: New file (generated). * regformats/s390-te-linux64.dat: New file (generated). * regformats/s390x-te-linux64.dat: New file (generated). * s390-tdep.h (HWCAP_S390_HIGH_GPRS): Define. (HWCAP_S390_TE): Likewise. (S390_TDB_DWORD0_REGNUM): Likewise. (S390_TDB_DWORD0_REGNUM): Likewise. (S390_TDB_ABORT_CODE_REGNUM): Likewise. (S390_TDB_CONFLICT_TOKEN_REGNUM): Likewise. (S390_TDB_ATIA_REGNUM): Likewise. (S390_TDB_R0_REGNUM): Likewise. (S390_TDB_R1_REGNUM): Likewise. (S390_TDB_R2_REGNUM): Likewise. (S390_TDB_R3_REGNUM): Likewise. (S390_TDB_R4_REGNUM): Likewise. (S390_TDB_R5_REGNUM): Likewise. (S390_TDB_R6_REGNUM): Likewise. (S390_TDB_R7_REGNUM): Likewise. (S390_TDB_R8_REGNUM): Likewise. (S390_TDB_R9_REGNUM): Likewise. (S390_TDB_R10_REGNUM): Likewise. (S390_TDB_R11_REGNUM): Likewise. (S390_TDB_R12_REGNUM): Likewise. (S390_TDB_R13_REGNUM): Likewise. (S390_TDB_R14_REGNUM): Likewise. (S390_TDB_R15_REGNUM): Likewise. (S390_NUM_REGS): Increase. (S390_IS_TDBREGSET_REGNUM): New macro. (s390_regmap_tdb): Declare. (s390_sizeof_tdbregset): Define. (tdesc_s390_te_linux64): Declare. (tdesc_s390x_te_linux64): Likewise. * s390-tdep.c: Add includes for "auxv.h", <elf.h>, "features/s390-te-linux64.c", and "features/s390x-te-linux64.c". (s390_regmap_tdb): New regmap. (s390_supply_tdb_regset): New function. (s390_tdb_regset): New regset. (s390_linux64v2_regset_sections): Add TDB regset to list. (s390x_linux64v2_regset_sections): Likewise. (s390_regset_from_core_section): Recognize TDB core note section. (s390_core_read_description): If HWCAP indicates TE support, select tdesc_s390_te_linux64 or tdesc_s390_s390x_te_linux64. (s390_gdbarch_init): Handle TDB regset. (_initialize_s390_tdep): Initialize new tdescs. * s390-nat.c (HWCAP_S390_HIGH_GPRS): Remove define. (have_regset_tdb): New variable. (s390_native_supply): Support register invalidation. (fetch_regset): Invalidate registers if ptrace yields ENODATA. (check_regset): Treat ENODATA as "regset exists". (s390_linux_fetch_inferior_registers): Add TDB. (s390_read_description): Check for TDB existence and select appropriate tdesc. * gdbserver/Makefile.in (clean): Add removal of new makefile targets. (s390-te-linux64.c): New makefile target. (s390x-te-linux64.c): Likewise. * gdbserver/configure.srv (srv_regobj): Append new objects s390-te-linux64.o and s390x-te-linux64.o. (srv_xmlfiles): Append new files s390-te-linux64.xml, s390x-te-linux64.xml, and s390-tdb.xml. * gdbserver/linux-s390-low.c (init_registers_s390_te_linux64): New declaration. (tdesc_s390_te_linux64): Likewise. (init_registers_s390x_te_linux64): Likewise. (tdesc_s390x_te_linux64): Likewise. (s390_check_regset): Treat ENODATA as "regset exists". (s390_arch_setup): Add TDB regset support. (initialize_low_arch): Initialize registers for new tdescs. gdb/doc/ChangeLog: 2013-09-13 Andreas Arnez <arnez@linux.vnet.ibm.com> * gdb.texinfo (Decimal Floating Point format): Mention S/390. (Standard Target Features): Add new node to menu. (S/390 and System z Features): New node. gdb/testsuite/ChangeLog: 2013-09-13 Andreas Arnez <arnez@linux.vnet.ibm.com> * gdb.arch/s390-tdbregs.c: New file. * gdb.arch/s390-tdbregs.exp: New file.
2013-09-132013-09-13 Andreas Arnez <arnez@linux.vnet.ibm.com>Ulrich Weigand4-324/+328
* s390-tdep.h (S390_IS_GREGSET_REGNUM): New macro. (S390_IS_FPREGSET_REGNUM): New macro. * s390-tdep.c (s390_dwarf_regmap): Make const. (regnum_is_gpr_full): New function for replacing repeated code. (s390_pseudo_register_name): Use it. (s390_pseudo_register_type): Likewise. (s390_pseudo_register_read): Likewise. (s390_pseudo_register_write): Likewise. (s390_unwind_pseudo_register): Likewise. (s390_regmap_gregset): New format for regmap. (s390x_regmap_gregset): Likewise. (s390_regmap_fpregset): Likewise. (s390_regmap_upper): Likewise. (s390_regmap_last_break): Likewise. (s390_regmap_system_call): Likewise. (s390_supply_regset): Adjust to new regmap format. (s390_collect_regset): Likewise. * s390-nat.c (s390_native_supply): Adjust to new regmap format. (s390_native_collect): Likewise. (supply_gregset): Likewise. (fill_gregset): Likewise. (supply_fpregset): Likewise. (fill_fpregset): Likewise. (fetch_regset): Likewise. (store_regset): Likewise. (s390_linux_fetch_inferior_registers): Likewise. (s390_linux_fetch_inferior_registers): Likewise.
2013-09-13doc,mi: example refers to -list-features instead of -list-target-featuresSanimir Agovic2-1/+6
Corrected mi documentation about -list-target-features, example now uses the correct mi command. 2013-09-13 Sanimir Agovic <sanimir.agovic@intel.com> * gdb.texinfo (GDB/MI Miscellaneous Commands): Use -list-target-features in the example.
2013-09-13daily updateAlan Modra1-1/+1
2013-09-12 * README: New file.Stan Shebs2-0/+386
2013-09-12 * gdb.python/py-events.py (new_objfile_handler): Remove accidentallyDoug Evans2-1/+5
added code to print event.inferior.
2013-09-122013-09-12 Chao-ying Fu <Chao-ying.Fu@imgtec.com>Chao-ying Fu4-0/+24
* gas/mips/bltzal.s: New file. * gas/mips/bltzal.l: New file. * gas/mips/mips.exp: Run the bltzal test.
2013-09-122013-09-12 Chao-ying Fu <Chao-ying.Fu@imgtec.com>Chao-ying Fu2-0/+9
* config/tc-mips.c (match_insn): Set error when $31 is used for bltzal* and bgezal*.
2013-09-12merge from gccDJ Delorie1-0/+2
2013-09-12 * dwarf.c (dwarf_vmatoa): Rename to dwarf_vmatoa_1 and add aNick Clifton37-616/+705
precision parameter. (dwarf_vmatoa): New wrapper for dwarf_vmatoa_1. (print_dwarf_vma): Use dwarf_vmatoa_1. (SAFE_BYTE_GET): Add check that VAL is big enough to contain AMOUNT bytes. (process_debug_info): Use an unsigned int for the offset size. (process_debug_pubnames): Likewise. (display_debug_aranges): Likewise. (struct Frame_Chunk): Use dwarf_vma type for pc_begin and pc_range fields. (frame_display_row): Use print_dwarf_vma to display dwarf_vma values. (display_debug_frames): Likewise. * binutils-all/x86-64/compressed-1a.d: Update expected output to allow for 64-bit addresses. * ld-elf/eh1.d: Update expected output to allow for 64-bit addresses. * ld-elf/eh2.d: Likewise. * ld-elf/eh3.d: Likewise. * ld-elf/eh4.d: Likewise. * ld-elf/eh5.d: Likewise. * ld-elf/eh6.d: Likewise. * ld-mips-elf/eh-frame1-n64.d: Likewise. * ld-mips-elf/eh-frame2-n64.d: Likewise. * ld-mips-elf/eh-frame3.d: Likewise. * gas/cfi/cfi-alpha-1.d: Update expected output to allow for 64-bit addresses. * gas/cfi/cfi-alpha-3.d: Likewise. * gas/cfi/cfi-arm-1.d: Likewise. * gas/cfi/cfi-common-1.d: Likewise. * gas/cfi/cfi-common-2.d: Likewise. * gas/cfi/cfi-common-3.d: Likewise. * gas/cfi/cfi-common-4.d: Likewise. * gas/cfi/cfi-common-5.d: Likewise. * gas/cfi/cfi-common-6.d: Likewise. * gas/cfi/cfi-common-7.d: Likewise. * gas/cfi/cfi-hppa-1.d: Likewise. * gas/cfi/cfi-i386-2.d: Likewise. * gas/cfi/cfi-i386.d: Likewise. * gas/cfi/cfi-m68k.d: Likewise. * gas/cfi/cfi-mips-1.d: Likewise. * gas/cfi/cfi-ppc-1.d: Likewise. * gas/cfi/cfi-s390-1.d: Likewise. * gas/cfi/cfi-s390x-1.d: Likewise. * gas/cfi/cfi-sh-1.d: Likewise. * gas/cfi/cfi-sparc-1.d: Likewise. * gas/cfi/cfi-sparc64-1.d: Likewise. * gas/cfi/cfi-x86_64.d: Likewise.
2013-09-122013-09-12 Andrew Pinski <apinski@cavium.com>Andrew Pinski2-0/+5
* aarch64-linux-nat.c (aarch64_linux_set_debug_regs): Zero out regs.
2013-09-12daily updateAlan Modra1-1/+1
2013-09-11minidebuginfo: Fix stripping/debuginfoJan Kratochvil4-8/+24
gdb/doc/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create mini_debuginfo. Strip binary before adding mini_debuginfo to it. gdb/testsuite/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.base/gnu-debugdata.exp (objcopy 1): Move it lower and use only debug part of the binary.
2013-09-11minidebuginfo: ppc64 sync testcase->docJan Kratochvil2-1/+8
gdb/doc/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> Sync documentation with gdb.base/gnu-debugdata.exp. * gdb.texinfo (MiniDebugInfo): Add comment and "D" in the example.
2013-09-11minidebuginfo: Obvious changesJan Kratochvil4-4/+14
gdb/doc/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.texinfo (MiniDebugInfo): Fix two trailing dots. gdb/testsuite/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.base/gnu-debugdata.exp (strip): Add -R .comment. (addlink): Add comment.
2013-09-11daily updateAlan Modra1-1/+1
2013-09-10merge from gccDJ Delorie3-170/+26
2013-09-10 * dwarf.c (display_debug_frames): Check for DW64_CIE_ID whenNick Clifton2-1/+7
parsing 64-bit frames.
2013-09-10merge from gccDJ Delorie3-2/+189
2013-09-102013-09-10 Andreas Arnez <arnez@linux.vnet.ibm.com>Ulrich Weigand2-1/+6
* config/s390/s390.mh (NATDEPFILES): Add linux-waitpid.o.
2013-09-10test: adjust 'cd' regexpr to match an optional canonically pathnameSanimir Agovic2-1/+6
New regexpr now correctly deals with trailing canonical pathname. Before only the following output was matched: (gdb) cd Working directory /users/foo In addition it now matches an optional trailing canonical pathname: (gdb) cd Working directory /users/foo (canonically /nfs/users/foo). Triggered by `realpath .` != `pwd` 2013-09-10 Sanimir Agovic <sanimir.agovic@intel.com> testsuite/ * gdb.base/default.exp: Adjust regexpr for 'cd' to match optional canonical pathname.
2013-09-10daily updateAlan Modra1-1/+1
2013-09-09Remove use of deprecated_init_ui_hook from quit_confirm.Andrew Burgess2-12/+7
https://sourceware.org/ml/gdb-patches/2013-09/msg00224.html gdb/ChangeLog * top.c (quit_confirm): Remove use of deprecated_init_ui_hook.
2013-09-09daily updateAlan Modra1-1/+1
2013-09-08daily updateAlan Modra1-1/+1
2013-09-07daily updateAlan Modra1-1/+1
2013-09-06remote-sim.c: Send debug output to gdb_stdlog.Pedro Alves2-22/+35
Tested by building for --target=arm-eabi, and playing with the debug output a bit. gdb/ 2013-09-06 Pedro Alves <palves@redhat.com> * remote-sim.c (dump_mem, gdbsim_fetch_register) (gdbsim_store_register, gdbsim_kill, gdbsim_load) (gdbsim_create_inferior, gdbsim_open, gdbsim_close) (gdbsim_detach, gdbsim_resume_inferior, gdbsim_wait) (gdbsim_files_info, gdbsim_mourn_inferior): Send debug output to gdb_stdlog.
2013-09-06remote-sim.c: Don't install a deprecated_xfer_memory method.Pedro Alves2-22/+45
Manually tested with a --target=arm-eabi build, and doing things like: $ arm-eabi-gcc ~/gdb/tests/main.c -o a.out -c -g $ ./gdb a.out ... (gdb) tar sim (gdb) load (gdb) disassemble 0 Dump of assembler code for function main: 0x00000000 <+0>: mov r12, sp 0x00000004 <+4>: push {r11, r12, lr, pc} 0x00000008 <+8>: sub r11, r12, #4 0x0000000c <+12>: sub sp, sp, #8 0x00000010 <+16>: str r0, [r11, #-16] 0x00000014 <+20>: str r1, [r11, #-20] 0x00000018 <+24>: mov r3, #0 0x0000001c <+28>: mov r0, r3 0x00000020 <+32>: sub sp, r11, #12 0x00000024 <+36>: ldm sp, {r11, sp, pc} End of assembler dump. (gdb) p *0 = 1 0x00000001 gdb/ 2013-09-06 Pedro Alves <palves@redhat.com> * remote-sim.c (dump_mem): Constify buf parameter. gdbsim_xfer_inferior_memory): Rename to ... (gdbsim_xfer_memory): ... this. Adjust interface as target_xfer_partial helper. (gdbsim_xfer_partial): New function. (init_gdbsim_ops): Don't install a deprecated_xfer_memory hook. Install a to_xfer_partial hook. Send output to gdb_stdlog.
2013-09-06remote-sim.c: cleanup debug output code.Pedro Alves2-9/+13
Manually tested with a --target=arm-eabi build, and doing $ arm-eabi-gcc ~/gdb/tests/main.c -o a.out -c -g $ ./gdb a.out ... (gdb) tar sim (gdb) load (gdb) set debug remote 1 (gdb) disassemble 0 Dump of assembler code for function main: gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x0, len 4, write 0 0x00000000 <+0>: 0xe1a0c00d mov r12, sp gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x4, len 4, write 0 0x00000004 <+4>: 0xe92dd800 push {r11, r12, lr, pc} gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x8, len 4, write 0 0x00000008 <+8>: 0xe24cb004 sub r11, r12, #4 gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0xc, len 4, write 0 0x0000000c <+12>: 0xe24dd008 sub sp, sp, #8 gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x10, len 4, write 0 0x00000010 <+16>: 0xe50b0010 str r0, [r11, #-16] gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x14, len 4, write 0 0x00000014 <+20>: 0xe50b1014 str r1, [r11, #-20] gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x18, len 4, write 0 0x00000018 <+24>: 0xe3a03000 mov r3, #0 gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x1c, len 4, write 0 0x0000001c <+28>: 0xe1a00003 mov r0, r3 gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x20, len 4, write 0 0x00000020 <+32>: 0xe24bd00c sub sp, r11, #12 gdbsim_xfer_inferior_memory: myaddr 0x7fffffffd400, memaddr 0x24, len 4, write 0 0x00000024 <+36>: 0xe89da800 ldm sp, {r11, sp, pc} End of assembler dump. (gdb) p *0 = 1 gdbsim_xfer_inferior_memory: myaddr 0xc69bc0, memaddr 0x0, len 4, write 1 0x00000001 $1 = 1 Which happens to differ from before, I think due to stdout line buffering: (gdb) disassemble 0 Dump of assembler code for function main: 0x00000000 <+0>: gdbsim_xfer_inferior_memory: myaddr 0x0x7fffffffd400, memaddr 0x0, len 4, write 0 0xe1a0c00d But the new output looks reasonable to me, better even. gdb/ 2013-09-06 Pedro Alves <palves@redhat.com> * remote-sim.c (gdbsim_xfer_inferior_memory): Use host_address_to_string, and send debug output to gdb_stdlog.