Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: gdb/solib-dsbt.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/solib-darwin.c ('k') | gdb/solib-frv.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Handle TIC6X (DSBT) shared libraries for GDB, the GNU Debugger. 1 /* Handle TIC6X (DSBT) shared libraries for GDB, the GNU Debugger.
2 Copyright (C) 2010-2012 Free Software Foundation, Inc. 2 Copyright (C) 2010-2012 Free Software Foundation, Inc.
3 3
4 This file is part of GDB. 4 This file is part of GDB.
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or 8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 /* Decode int_elf32_dsbt_loadmap from BUF. */ 225 /* Decode int_elf32_dsbt_loadmap from BUF. */
226 226
227 static struct int_elf32_dsbt_loadmap * 227 static struct int_elf32_dsbt_loadmap *
228 decode_loadmap (gdb_byte *buf) 228 decode_loadmap (gdb_byte *buf)
229 { 229 {
230 enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch); 230 enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
231 struct ext_elf32_dsbt_loadmap *ext_ldmbuf; 231 struct ext_elf32_dsbt_loadmap *ext_ldmbuf;
232 struct int_elf32_dsbt_loadmap *int_ldmbuf; 232 struct int_elf32_dsbt_loadmap *int_ldmbuf;
233 233
234 int version, seg, nsegs; 234 int version, seg, nsegs;
235 int ext_ldmbuf_size, int_ldmbuf_size; 235 int int_ldmbuf_size;
236 236
237 ext_ldmbuf = (struct ext_elf32_dsbt_loadmap *) buf; 237 ext_ldmbuf = (struct ext_elf32_dsbt_loadmap *) buf;
238 238
239 /* Extract the version. */ 239 /* Extract the version. */
240 version = extract_unsigned_integer (ext_ldmbuf->version, 240 version = extract_unsigned_integer (ext_ldmbuf->version,
241 sizeof ext_ldmbuf->version, 241 sizeof ext_ldmbuf->version,
242 byte_order); 242 byte_order);
243 if (version != 0) 243 if (version != 0)
244 { 244 {
245 /* We only handle version 0. */ 245 /* We only handle version 0. */
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 info->interp_plt_sect_high = 0; 834 info->interp_plt_sect_high = 0;
835 835
836 /* Find the .interp section; if not found, warn the user and drop 836 /* Find the .interp section; if not found, warn the user and drop
837 into the old breakpoint at symbol code. */ 837 into the old breakpoint at symbol code. */
838 interp_sect = bfd_get_section_by_name (exec_bfd, ".interp"); 838 interp_sect = bfd_get_section_by_name (exec_bfd, ".interp");
839 if (interp_sect) 839 if (interp_sect)
840 { 840 {
841 unsigned int interp_sect_size; 841 unsigned int interp_sect_size;
842 gdb_byte *buf; 842 gdb_byte *buf;
843 bfd *tmp_bfd = NULL; 843 bfd *tmp_bfd = NULL;
844 int status; 844 CORE_ADDR addr;
845 CORE_ADDR addr, interp_loadmap_addr;
846 gdb_byte addr_buf[TIC6X_PTR_SIZE]; 845 gdb_byte addr_buf[TIC6X_PTR_SIZE];
847 struct int_elf32_dsbt_loadmap *ldm; 846 struct int_elf32_dsbt_loadmap *ldm;
848 volatile struct gdb_exception ex; 847 volatile struct gdb_exception ex;
849 848
850 /* Read the contents of the .interp section into a local buffer; 849 /* Read the contents of the .interp section into a local buffer;
851 the contents specify the dynamic linker this program uses. */ 850 the contents specify the dynamic linker this program uses. */
852 interp_sect_size = bfd_section_size (exec_bfd, interp_sect); 851 interp_sect_size = bfd_section_size (exec_bfd, interp_sect);
853 buf = alloca (interp_sect_size); 852 buf = alloca (interp_sect_size);
854 bfd_get_section_contents (exec_bfd, interp_sect, 853 bfd_get_section_contents (exec_bfd, interp_sect,
855 buf, 0, interp_sect_size); 854 buf, 0, interp_sect_size);
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 is needed. */ 1021 is needed. */
1023 1022
1024 static void 1023 static void
1025 dsbt_special_symbol_handling (void) 1024 dsbt_special_symbol_handling (void)
1026 { 1025 {
1027 } 1026 }
1028 1027
1029 static void 1028 static void
1030 dsbt_relocate_main_executable (void) 1029 dsbt_relocate_main_executable (void)
1031 { 1030 {
1032 int status;
1033 CORE_ADDR exec_addr, interp_addr;
1034 struct int_elf32_dsbt_loadmap *ldm; 1031 struct int_elf32_dsbt_loadmap *ldm;
1035 struct cleanup *old_chain; 1032 struct cleanup *old_chain;
1036 struct section_offsets *new_offsets; 1033 struct section_offsets *new_offsets;
1037 int changed; 1034 int changed;
1038 struct obj_section *osect; 1035 struct obj_section *osect;
1039 struct dsbt_info *info = get_dsbt_info (); 1036 struct dsbt_info *info = get_dsbt_info ();
1040 1037
1041 dsbt_get_initial_loadmaps (); 1038 dsbt_get_initial_loadmaps ();
1042 ldm = info->exec_loadmap; 1039 ldm = info->exec_loadmap;
1043 1040
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1188 /* Debug this file's internals. */ 1185 /* Debug this file's internals. */
1189 add_setshow_zinteger_cmd ("solib-dsbt", class_maintenance, 1186 add_setshow_zinteger_cmd ("solib-dsbt", class_maintenance,
1190 &solib_dsbt_debug, _("\ 1187 &solib_dsbt_debug, _("\
1191 Set internal debugging of shared library code for DSBT ELF."), _("\ 1188 Set internal debugging of shared library code for DSBT ELF."), _("\
1192 Show internal debugging of shared library code for DSBT ELF."), _("\ 1189 Show internal debugging of shared library code for DSBT ELF."), _("\
1193 When non-zero, DSBT solib specific internal debugging is enabled."), 1190 When non-zero, DSBT solib specific internal debugging is enabled."),
1194 NULL, 1191 NULL,
1195 show_dsbt_debug, 1192 show_dsbt_debug,
1196 &setdebuglist, &showdebuglist); 1193 &setdebuglist, &showdebuglist);
1197 } 1194 }
OLDNEW
« no previous file with comments | « gdb/solib-darwin.c ('k') | gdb/solib-frv.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698