| 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 |