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

Side by Side Diff: gdb/symfile-mem.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/symfile.c ('k') | gdb/symmisc.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 /* Reading symbol files from memory. 1 /* Reading symbol files from memory.
2 2
3 Copyright (C) 1986-1987, 1989, 1991, 1994-1996, 1998, 2000-2005, 3 Copyright (C) 1986-1987, 1989, 1991, 1994-1996, 1998, 2000-2005,
4 2007-2012 Free Software Foundation, Inc. 4 2007-2012 Free Software Foundation, Inc.
5 5
6 This file is part of GDB. 6 This file is part of GDB.
7 7
8 This program is free software; you can redistribute it and/or modify 8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by 9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or 10 the Free Software Foundation; either version 3 of the License, or
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #include "objfiles.h" 48 #include "objfiles.h"
49 #include "exceptions.h" 49 #include "exceptions.h"
50 #include "gdbcmd.h" 50 #include "gdbcmd.h"
51 #include "target.h" 51 #include "target.h"
52 #include "value.h" 52 #include "value.h"
53 #include "symfile.h" 53 #include "symfile.h"
54 #include "observer.h" 54 #include "observer.h"
55 #include "auxv.h" 55 #include "auxv.h"
56 #include "elf/common.h" 56 #include "elf/common.h"
57 57
58 /* Verify parameters of target_read_memory_bfd and target_read_memory are
59 compatible. */
60
61 gdb_static_assert (sizeof (CORE_ADDR) == sizeof (bfd_vma));
62 gdb_static_assert (sizeof (gdb_byte) == sizeof (bfd_byte));
63 gdb_static_assert (sizeof (ssize_t) <= sizeof (bfd_size_type));
64
65 /* Provide bfd/ compatible prototype for target_read_memory. Casting would not
66 be enough as LEN width may differ. */
67
68 static int
69 target_read_memory_bfd (bfd_vma memaddr, bfd_byte *myaddr, bfd_size_type len)
70 {
71 /* MYADDR must be already allocated for the LEN size so it has to fit in
72 ssize_t. */
73 gdb_assert ((ssize_t) len == len);
74
75 return target_read_memory (memaddr, myaddr, len);
76 }
58 77
59 /* Read inferior memory at ADDR to find the header of a loaded object file 78 /* Read inferior memory at ADDR to find the header of a loaded object file
60 and read its in-core symbols out of inferior memory. TEMPL is a bfd 79 and read its in-core symbols out of inferior memory. TEMPL is a bfd
61 representing the target's format. NAME is the name to use for this 80 representing the target's format. NAME is the name to use for this
62 symbol file in messages; it can be NULL or a malloc-allocated string 81 symbol file in messages; it can be NULL or a malloc-allocated string
63 which will be attached to the BFD. */ 82 which will be attached to the BFD. */
64 static struct objfile * 83 static struct objfile *
65 symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr, char *name, 84 symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr, char *name,
66 int from_tty) 85 int from_tty)
67 { 86 {
68 struct objfile *objf; 87 struct objfile *objf;
69 struct bfd *nbfd; 88 struct bfd *nbfd;
70 struct bfd_section *sec; 89 struct bfd_section *sec;
71 bfd_vma loadbase; 90 bfd_vma loadbase;
72 struct section_addr_info *sai; 91 struct section_addr_info *sai;
73 unsigned int i; 92 unsigned int i;
74 struct cleanup *cleanup; 93 struct cleanup *cleanup;
75 94
76 if (bfd_get_flavour (templ) != bfd_target_elf_flavour) 95 if (bfd_get_flavour (templ) != bfd_target_elf_flavour)
77 error (_("add-symbol-file-from-memory not supported for this target")); 96 error (_("add-symbol-file-from-memory not supported for this target"));
78 97
79 nbfd = bfd_elf_bfd_from_remote_memory (templ, addr, &loadbase, 98 nbfd = bfd_elf_bfd_from_remote_memory (templ, addr, &loadbase,
80 » » » » » target_read_memory); 99 » » » » » target_read_memory_bfd);
81 if (nbfd == NULL) 100 if (nbfd == NULL)
82 error (_("Failed to read a valid object file image from memory.")); 101 error (_("Failed to read a valid object file image from memory."));
83 102
84 if (name == NULL) 103 if (name == NULL)
85 nbfd->filename = xstrdup ("shared object read from target memory"); 104 nbfd->filename = xstrdup ("shared object read from target memory");
86 else 105 else
87 nbfd->filename = name; 106 nbfd->filename = name;
88 107
89 if (!bfd_check_format (nbfd, bfd_object)) 108 if (!bfd_check_format (nbfd, bfd_object))
90 { 109 {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 _("Load the symbols out of memory from a " 242 _("Load the symbols out of memory from a "
224 "dynamically loaded object file.\n" 243 "dynamically loaded object file.\n"
225 "Give an expression for the address " 244 "Give an expression for the address "
226 "of the file's shared object file header."), 245 "of the file's shared object file header."),
227 &cmdlist); 246 &cmdlist);
228 247
229 /* Want to know of each new inferior so that its vsyscall info can 248 /* Want to know of each new inferior so that its vsyscall info can
230 be extracted. */ 249 be extracted. */
231 observer_attach_inferior_created (add_vsyscall_page); 250 observer_attach_inferior_created (add_vsyscall_page);
232 } 251 }
OLDNEW
« no previous file with comments | « gdb/symfile.c ('k') | gdb/symmisc.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698