testcase are broken for some targets. In this test the functions
are all implemented as part of one file and the testcase is not
necessarily linked with a start file (depending on the target).
- What happens is, that the first frame is printed normaly and
- following frames are treated as being inside the enttry file then.
+ What happens is, that the first frame is printed normally and
+ following frames are treated as being inside the entry file then.
This way, only the #0 frame is printed in the backtrace output.''
Ref "frame.c" "NOTE: vinschen/2003-04-01".
/* Byte cache for file names. */
- struct bcache filename_cache;
+ gdb::bcache filename_cache;
/* Byte cache for macros. */
- struct bcache macro_cache;
+ gdb::bcache macro_cache;
/* The gdbarch associated with the BFD. Note that this gdbarch is
determined solely from BFD information, without looking at target
struct objfile
{
+private:
+
+ /* The only way to create an objfile is to call objfile::make. */
objfile (bfd *, const char *, objfile_flags);
+
+ /* The only way to free an objfile is via 'unlink'. */
~objfile ();
+public:
+
+ /* Create an objfile. */
+ static objfile *make (bfd *bfd_, const char *name_, objfile_flags flags_,
+ objfile *parent = nullptr);
+
+ /* Remove an objfile from the current program space, and free
+ it. */
+ void unlink ();
+
DISABLE_COPY_AND_ASSIGN (objfile);
/* A range adapter that makes it possible to iterate over all
htab_up static_links;
};
+/* A deleter for objfile. */
+
+struct objfile_deleter
+{
+ void operator() (objfile *ptr) const
+ {
+ ptr->unlink ();
+ }
+};
+
+/* A unique pointer that holds an objfile. */
+
+typedef std::unique_ptr<objfile, objfile_deleter> objfile_up;
+
/* Declarations for functions defined in objfiles.c */
extern struct gdbarch *get_objfile_arch (const struct objfile *);
extern void build_objfile_section_table (struct objfile *);
-extern void add_separate_debug_objfile (struct objfile *, struct objfile *);
-
extern void free_objfile_separate_debug (struct objfile *);
extern void free_all_objfiles (void);
uninitialized section index. */
#define SECT_OFF_BSS(objfile) (objfile)->sect_index_bss
-/* Answer whether there is more than one object file loaded. */
-
-#define MULTI_OBJFILE_P() (object_files && object_files->next)
-
/* Reset the per-BFD storage area on OBJ. */
void set_objfile_per_bfd (struct objfile *obj);