OLD | NEW |
1 /* Handle PA64 shared libraries for GDB, the GNU Debugger. | 1 /* Handle PA64 shared libraries for GDB, the GNU Debugger. |
2 | 2 |
3 Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc. | 3 Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc. |
4 | 4 |
5 This file is part of GDB. | 5 This file is part of GDB. |
6 | 6 |
7 This program is free software; you can redistribute it and/or modify | 7 This program is free software; you can redistribute it and/or modify |
8 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
9 the Free Software Foundation; either version 3 of the License, or | 9 the Free Software Foundation; either version 3 of the License, or |
10 (at your option) any later version. | 10 (at your option) any later version. |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
376 } | 376 } |
377 | 377 |
378 /* We find the dynamic linker's base address by examining the | 378 /* We find the dynamic linker's base address by examining the |
379 current pc (which point at the entry point for the dynamic | 379 current pc (which point at the entry point for the dynamic |
380 linker) and subtracting the offset of the entry point. | 380 linker) and subtracting the offset of the entry point. |
381 | 381 |
382 Also note the breakpoint is the second instruction in the | 382 Also note the breakpoint is the second instruction in the |
383 routine. */ | 383 routine. */ |
384 load_addr = regcache_read_pc (get_current_regcache ()) | 384 load_addr = regcache_read_pc (get_current_regcache ()) |
385 - tmp_bfd->start_address; | 385 - tmp_bfd->start_address; |
386 sym_addr = bfd_lookup_symbol_from_symtab (tmp_bfd, cmp_name, | 386 sym_addr = gdb_bfd_lookup_symbol_from_symtab (tmp_bfd, cmp_name, |
387 » » » » » » "__dld_break"); | 387 » » » » » » "__dld_break"); |
388 sym_addr = load_addr + sym_addr + 4; | 388 sym_addr = load_addr + sym_addr + 4; |
389 | 389 |
390 /* Create the shared library breakpoint. */ | 390 /* Create the shared library breakpoint. */ |
391 { | 391 { |
392 struct breakpoint *b | 392 struct breakpoint *b |
393 = create_solib_event_breakpoint (target_gdbarch, sym_addr); | 393 = create_solib_event_breakpoint (target_gdbarch, sym_addr); |
394 | 394 |
395 /* The breakpoint is actually hard-coded into the dynamic linker, | 395 /* The breakpoint is actually hard-coded into the dynamic linker, |
396 so we don't need to actually insert a breakpoint instruction | 396 so we don't need to actually insert a breakpoint instruction |
397 there. In fact, the dynamic linker's code is immutable, even to | 397 there. In fact, the dynamic linker's code is immutable, even to |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 { | 646 { |
647 } | 647 } |
648 | 648 |
649 void pa64_solib_select (struct gdbarch *gdbarch) | 649 void pa64_solib_select (struct gdbarch *gdbarch) |
650 { | 650 { |
651 /* For a SOM-only target, there is no pa64 solib support. This is needed | 651 /* For a SOM-only target, there is no pa64 solib support. This is needed |
652 for hppa-hpux-tdep.c to build. */ | 652 for hppa-hpux-tdep.c to build. */ |
653 error (_("Cannot select pa64 solib support for this configuration.")); | 653 error (_("Cannot select pa64 solib support for this configuration.")); |
654 } | 654 } |
655 #endif | 655 #endif |
OLD | NEW |