forked from Imagelibrary/binutils-gdb
Remove redundant typedefs
I was inspired by this patch of Simon's: https://sourceware.org/pipermail/gdb-patches/2020-November/173522.html ... to remove other typedefs that are no longer necessary now that gdb uses C++. I didn't remove absolutely every one -- I didn't touch the tdep files. However, I removed many of them. In some cases, I removed an existing different struct tag. 2020-12-04 Tom Tromey <tromey@adacore.com> * linespec.c (struct linespec_token): Rename; remove typedef. * guile/scm-block.c (struct block_smob): Remove typedef. (struct block_syms_progress_smob): Likewise. * guile/scm-symbol.c (struct symbol_smob): Remove typedef. * guile/scm-symtab.c (symtab_smob): Remove typedef. (struct sal_smob): Remove typedef. * guile/scm-param.c (struct param_smob): Remove typedef. * guile/scm-progspace.c (struct pspace_smob): Rename. * guile/scm-objfile.c (struct objfile_smob): Rename. * guile/scm-iterator.c (struct iterator_smob): Rename. * guile/scm-frame.c (struct frame_smob): Rename. * guile/scm-arch.c (struct arch_smob): Rename. * guile/scm-type.c (struct field_smob): Remove typedef. (struct type_smob): Rename. * guile/scm-cmd.c (struct command_smob): Remove typedef. * guile/scm-ports.c (struct ioscm_memory_port): Remove typedef. * guile/scm-value.c (struct value_smob): Remove typedef. * guile/scm-lazy-string.c (lazy_string_smob): Remove typedef. * guile/guile-internal.h (struct scheme_variable) (struct scheme_function, struct scheme_integer_constant) (struct gdb_smob, struct chained_gdb_smob) (struct eqable_gdb_smob, arch_smob, frame_smob, iterator_smob) (objfile_smob, pspace_smob, type_smob): Remove typedef. * guile/scm-pretty-print.c (pretty_printer_smob): Remove typedef. (struct pretty_printer_worker_smob): Remove typedef. * guile/scm-exception.c (struct exception_smob): Remove typedef. * python/py-block.c (struct block_object): Remove typedef. (block_syms_iterator_object): Update. (set_block): Update. (block_syms_iterator_object): Remove typedef. * python/py-inferior.c (struct membuf_object): Remove typedef. * python/py-symtab.c (struct symtab_object): Remove typedef. (set_symtab): Update. (sal_object): Remove typedef. (set_sal): Update. * python/py-frame.c (frame_object): Remove typedef. * python/py-record-btrace.c (struct btpy_list_object): Remove typedef. * python/py-arch.c (struct arch_object): Remove typedef. * python/py-linetable.c (struct linetable_entry_object) (linetable_object, struct ltpy_iterator_object): Remove typedef. * python/py-events.h (eventregistry_object): Remove typedef. (struct events_object): Remove typedef. * python/python-internal.h (gdbpy_breakpoint_object): Remove typedef. (thread_object): Remove typedef. * python/py-progspace.c (pspace_object): Remove typedef. * python/py-value.c (struct value_object): Remove typedef. * python/py-record.h (recpy_record_object): Remove typedef. (struct recpy_element_object): Remove typedef. * python/py-lazy-string.c (lazy_string_object): Remove typedef. * python/py-objfile.c (objfile_object): Remove typedef. * python/py-cmd.c (struct cmdpy_object): Remove typedef. * python/py-type.c (type_object): Remove typedef. (typy_iterator_object): Update. (set_type): Update. (field_object): Remove typedef. (typy_iterator_object): Remove typedef. * python/py-registers.c (register_descriptor_iterator_object): Remove typedef. (struct register_descriptor_object) (struct reggroup_iterator_object, struct reggroup_object): Remove typedef. * python/py-record.c (recpy_gap_object): Remove typedef. * python/py-symbol.c (symbol_object): Remove typedef. (set_symbol): Update. * python/py-event.h (event_object): Remove typedef. * python/py-param.c (parmpy_object): Remove typedef. * python/py-instruction.c (struct py_insn_obj): Remove typedef. * python/py-unwind.c (struct pending_frame_object): Remove typedef. (unwind_info_object, struct cached_frame_info): Likewise.
This commit is contained in:
@@ -1,3 +1,77 @@
|
|||||||
|
2020-12-04 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
* linespec.c (struct linespec_token): Rename; remove typedef.
|
||||||
|
* guile/scm-block.c (struct block_smob): Remove typedef.
|
||||||
|
(struct block_syms_progress_smob): Likewise.
|
||||||
|
* guile/scm-symbol.c (struct symbol_smob): Remove typedef.
|
||||||
|
* guile/scm-symtab.c (symtab_smob): Remove typedef.
|
||||||
|
(struct sal_smob): Remove typedef.
|
||||||
|
* guile/scm-param.c (struct param_smob): Remove typedef.
|
||||||
|
* guile/scm-progspace.c (struct pspace_smob): Rename.
|
||||||
|
* guile/scm-objfile.c (struct objfile_smob): Rename.
|
||||||
|
* guile/scm-iterator.c (struct iterator_smob): Rename.
|
||||||
|
* guile/scm-frame.c (struct frame_smob): Rename.
|
||||||
|
* guile/scm-arch.c (struct arch_smob): Rename.
|
||||||
|
* guile/scm-type.c (struct field_smob): Remove typedef.
|
||||||
|
(struct type_smob): Rename.
|
||||||
|
* guile/scm-cmd.c (struct command_smob): Remove typedef.
|
||||||
|
* guile/scm-ports.c (struct ioscm_memory_port): Remove typedef.
|
||||||
|
* guile/scm-value.c (struct value_smob): Remove typedef.
|
||||||
|
* guile/scm-lazy-string.c (lazy_string_smob): Remove typedef.
|
||||||
|
* guile/guile-internal.h (struct scheme_variable)
|
||||||
|
(struct scheme_function, struct scheme_integer_constant)
|
||||||
|
(struct gdb_smob, struct chained_gdb_smob)
|
||||||
|
(struct eqable_gdb_smob, arch_smob, frame_smob, iterator_smob)
|
||||||
|
(objfile_smob, pspace_smob, type_smob): Remove typedef.
|
||||||
|
* guile/scm-pretty-print.c (pretty_printer_smob): Remove typedef.
|
||||||
|
(struct pretty_printer_worker_smob): Remove typedef.
|
||||||
|
* guile/scm-exception.c (struct exception_smob): Remove typedef.
|
||||||
|
* python/py-block.c (struct block_object): Remove typedef.
|
||||||
|
(block_syms_iterator_object): Update.
|
||||||
|
(set_block): Update.
|
||||||
|
(block_syms_iterator_object): Remove typedef.
|
||||||
|
* python/py-inferior.c (struct membuf_object): Remove typedef.
|
||||||
|
* python/py-symtab.c (struct symtab_object): Remove typedef.
|
||||||
|
(set_symtab): Update.
|
||||||
|
(sal_object): Remove typedef.
|
||||||
|
(set_sal): Update.
|
||||||
|
* python/py-frame.c (frame_object): Remove typedef.
|
||||||
|
* python/py-record-btrace.c (struct btpy_list_object): Remove
|
||||||
|
typedef.
|
||||||
|
* python/py-arch.c (struct arch_object): Remove typedef.
|
||||||
|
* python/py-linetable.c (struct linetable_entry_object)
|
||||||
|
(linetable_object, struct ltpy_iterator_object): Remove typedef.
|
||||||
|
* python/py-events.h (eventregistry_object): Remove typedef.
|
||||||
|
(struct events_object): Remove typedef.
|
||||||
|
* python/python-internal.h (gdbpy_breakpoint_object): Remove
|
||||||
|
typedef.
|
||||||
|
(thread_object): Remove typedef.
|
||||||
|
* python/py-progspace.c (pspace_object): Remove typedef.
|
||||||
|
* python/py-value.c (struct value_object): Remove typedef.
|
||||||
|
* python/py-record.h (recpy_record_object): Remove typedef.
|
||||||
|
(struct recpy_element_object): Remove typedef.
|
||||||
|
* python/py-lazy-string.c (lazy_string_object): Remove typedef.
|
||||||
|
* python/py-objfile.c (objfile_object): Remove typedef.
|
||||||
|
* python/py-cmd.c (struct cmdpy_object): Remove typedef.
|
||||||
|
* python/py-type.c (type_object): Remove typedef.
|
||||||
|
(typy_iterator_object): Update.
|
||||||
|
(set_type): Update.
|
||||||
|
(field_object): Remove typedef.
|
||||||
|
(typy_iterator_object): Remove typedef.
|
||||||
|
* python/py-registers.c (register_descriptor_iterator_object):
|
||||||
|
Remove typedef.
|
||||||
|
(struct register_descriptor_object)
|
||||||
|
(struct reggroup_iterator_object, struct reggroup_object): Remove
|
||||||
|
typedef.
|
||||||
|
* python/py-record.c (recpy_gap_object): Remove typedef.
|
||||||
|
* python/py-symbol.c (symbol_object): Remove typedef.
|
||||||
|
(set_symbol): Update.
|
||||||
|
* python/py-event.h (event_object): Remove typedef.
|
||||||
|
* python/py-param.c (parmpy_object): Remove typedef.
|
||||||
|
* python/py-instruction.c (struct py_insn_obj): Remove typedef.
|
||||||
|
* python/py-unwind.c (struct pending_frame_object): Remove typedef.
|
||||||
|
(unwind_info_object, struct cached_frame_info): Likewise.
|
||||||
|
|
||||||
2020-12-04 Tom Tromey <tromey@adacore.com>
|
2020-12-04 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
* value.c (value_internal_function_name): Make return type const.
|
* value.c (value_internal_function_name): Make return type const.
|
||||||
|
|||||||
@@ -40,12 +40,12 @@ typedef int excp_matcher_func (SCM key);
|
|||||||
|
|
||||||
/* Scheme variables to define during initialization. */
|
/* Scheme variables to define during initialization. */
|
||||||
|
|
||||||
typedef struct
|
struct scheme_variable
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
SCM value;
|
SCM value;
|
||||||
const char *doc_string;
|
const char *doc_string;
|
||||||
} scheme_variable;
|
};
|
||||||
|
|
||||||
/* End of scheme_variable table mark. */
|
/* End of scheme_variable table mark. */
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ as_a_scm_t_subr (SCM (*func) (SCM, SCM, SCM))
|
|||||||
|
|
||||||
/* Scheme functions to define during initialization. */
|
/* Scheme functions to define during initialization. */
|
||||||
|
|
||||||
typedef struct
|
struct scheme_function
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
int required;
|
int required;
|
||||||
@@ -97,7 +97,7 @@ typedef struct
|
|||||||
int rest;
|
int rest;
|
||||||
scm_t_subr func;
|
scm_t_subr func;
|
||||||
const char *doc_string;
|
const char *doc_string;
|
||||||
} scheme_function;
|
};
|
||||||
|
|
||||||
/* End of scheme_function table mark. */
|
/* End of scheme_function table mark. */
|
||||||
|
|
||||||
@@ -105,11 +105,11 @@ typedef struct
|
|||||||
|
|
||||||
/* Useful for defining a set of constants. */
|
/* Useful for defining a set of constants. */
|
||||||
|
|
||||||
typedef struct
|
struct scheme_integer_constant
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
int value;
|
int value;
|
||||||
} scheme_integer_constant;
|
};
|
||||||
|
|
||||||
#define END_INTEGER_CONSTANTS { NULL, 0 }
|
#define END_INTEGER_CONSTANTS { NULL, 0 }
|
||||||
|
|
||||||
@@ -239,20 +239,20 @@ extern int gdbscm_guile_version_is_at_least (int major, int minor, int micro);
|
|||||||
#define GDB_SMOB_HEAD \
|
#define GDB_SMOB_HEAD \
|
||||||
int empty_base_class;
|
int empty_base_class;
|
||||||
|
|
||||||
typedef struct
|
struct gdb_smob
|
||||||
{
|
{
|
||||||
GDB_SMOB_HEAD
|
GDB_SMOB_HEAD
|
||||||
} gdb_smob;
|
};
|
||||||
|
|
||||||
typedef struct _chained_gdb_smob
|
struct chained_gdb_smob
|
||||||
{
|
{
|
||||||
GDB_SMOB_HEAD
|
GDB_SMOB_HEAD
|
||||||
|
|
||||||
struct _chained_gdb_smob *prev;
|
chained_gdb_smob *prev;
|
||||||
struct _chained_gdb_smob *next;
|
chained_gdb_smob *next;
|
||||||
} chained_gdb_smob;
|
};
|
||||||
|
|
||||||
typedef struct _eqable_gdb_smob
|
struct eqable_gdb_smob
|
||||||
{
|
{
|
||||||
GDB_SMOB_HEAD
|
GDB_SMOB_HEAD
|
||||||
|
|
||||||
@@ -267,7 +267,7 @@ typedef struct _eqable_gdb_smob
|
|||||||
we need to invalidate the objects: we can do that using the same hashtab
|
we need to invalidate the objects: we can do that using the same hashtab
|
||||||
used to record the smob for eq-ability. */
|
used to record the smob for eq-ability. */
|
||||||
SCM containing_scm;
|
SCM containing_scm;
|
||||||
} eqable_gdb_smob;
|
};
|
||||||
|
|
||||||
#undef GDB_SMOB_HEAD
|
#undef GDB_SMOB_HEAD
|
||||||
|
|
||||||
@@ -416,7 +416,7 @@ extern void gdbscm_enter_repl (void);
|
|||||||
|
|
||||||
/* scm-arch.c */
|
/* scm-arch.c */
|
||||||
|
|
||||||
typedef struct _arch_smob arch_smob;
|
struct arch_smob;
|
||||||
|
|
||||||
extern struct gdbarch *arscm_get_gdbarch (arch_smob *a_smob);
|
extern struct gdbarch *arscm_get_gdbarch (arch_smob *a_smob);
|
||||||
|
|
||||||
@@ -447,7 +447,7 @@ extern char *gdbscm_canonicalize_command_name (const char *name,
|
|||||||
|
|
||||||
/* scm-frame.c */
|
/* scm-frame.c */
|
||||||
|
|
||||||
typedef struct _frame_smob frame_smob;
|
struct frame_smob;
|
||||||
|
|
||||||
extern int frscm_is_frame (SCM scm);
|
extern int frscm_is_frame (SCM scm);
|
||||||
|
|
||||||
@@ -458,7 +458,7 @@ extern struct frame_info *frscm_frame_smob_to_frame (frame_smob *);
|
|||||||
|
|
||||||
/* scm-iterator.c */
|
/* scm-iterator.c */
|
||||||
|
|
||||||
typedef struct _iterator_smob iterator_smob;
|
struct iterator_smob;
|
||||||
|
|
||||||
extern SCM itscm_iterator_smob_object (iterator_smob *i_smob);
|
extern SCM itscm_iterator_smob_object (iterator_smob *i_smob);
|
||||||
|
|
||||||
@@ -500,7 +500,7 @@ extern void lsscm_val_print_lazy_string
|
|||||||
|
|
||||||
/* scm-objfile.c */
|
/* scm-objfile.c */
|
||||||
|
|
||||||
typedef struct _objfile_smob objfile_smob;
|
struct objfile_smob;
|
||||||
|
|
||||||
extern SCM ofscm_objfile_smob_pretty_printers (objfile_smob *o_smob);
|
extern SCM ofscm_objfile_smob_pretty_printers (objfile_smob *o_smob);
|
||||||
|
|
||||||
@@ -510,7 +510,7 @@ extern SCM ofscm_scm_from_objfile (struct objfile *objfile);
|
|||||||
|
|
||||||
/* scm-progspace.c */
|
/* scm-progspace.c */
|
||||||
|
|
||||||
typedef struct _pspace_smob pspace_smob;
|
struct pspace_smob;
|
||||||
|
|
||||||
extern SCM psscm_pspace_smob_pretty_printers (const pspace_smob *);
|
extern SCM psscm_pspace_smob_pretty_printers (const pspace_smob *);
|
||||||
|
|
||||||
@@ -557,7 +557,7 @@ extern SCM stscm_scm_from_sal (struct symtab_and_line sal);
|
|||||||
|
|
||||||
/* scm-type.c */
|
/* scm-type.c */
|
||||||
|
|
||||||
typedef struct _type_smob type_smob;
|
struct type_smob;
|
||||||
|
|
||||||
extern int tyscm_is_type (SCM scm);
|
extern int tyscm_is_type (SCM scm);
|
||||||
|
|
||||||
|
|||||||
@@ -26,10 +26,9 @@
|
|||||||
#include "arch-utils.h"
|
#include "arch-utils.h"
|
||||||
#include "guile-internal.h"
|
#include "guile-internal.h"
|
||||||
|
|
||||||
/* The <gdb:arch> smob.
|
/* The <gdb:arch> smob. */
|
||||||
The typedef for this struct is in guile-internal.h. */
|
|
||||||
|
|
||||||
struct _arch_smob
|
struct arch_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
/* A smob describing a gdb block. */
|
/* A smob describing a gdb block. */
|
||||||
|
|
||||||
typedef struct _block_smob
|
struct block_smob
|
||||||
{
|
{
|
||||||
/* This always appears first.
|
/* This always appears first.
|
||||||
We want blocks to be eq?-able. And we need to be able to invalidate
|
We want blocks to be eq?-able. And we need to be able to invalidate
|
||||||
@@ -44,7 +44,7 @@ typedef struct _block_smob
|
|||||||
between a block and an object file. When a block is created also
|
between a block and an object file. When a block is created also
|
||||||
store a pointer to the object file for later use. */
|
store a pointer to the object file for later use. */
|
||||||
struct objfile *objfile;
|
struct objfile *objfile;
|
||||||
} block_smob;
|
};
|
||||||
|
|
||||||
/* To iterate over block symbols from Scheme we need to store
|
/* To iterate over block symbols from Scheme we need to store
|
||||||
struct block_iterator somewhere. This is stored in the "progress" field
|
struct block_iterator somewhere. This is stored in the "progress" field
|
||||||
@@ -54,7 +54,7 @@ typedef struct _block_smob
|
|||||||
Remember: While iterating over block symbols, you must continually check
|
Remember: While iterating over block symbols, you must continually check
|
||||||
whether the block is still valid. */
|
whether the block is still valid. */
|
||||||
|
|
||||||
typedef struct
|
struct block_syms_progress_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -64,7 +64,7 @@ typedef struct
|
|||||||
|
|
||||||
/* Has the iterator been initialized flag. */
|
/* Has the iterator been initialized flag. */
|
||||||
int initialized_p;
|
int initialized_p;
|
||||||
} block_syms_progress_smob;
|
};
|
||||||
|
|
||||||
static const char block_smob_name[] = "gdb:block";
|
static const char block_smob_name[] = "gdb:block";
|
||||||
static const char block_syms_progress_smob_name[] = "gdb:block-symbols-iterator";
|
static const char block_syms_progress_smob_name[] = "gdb:block-symbols-iterator";
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
any side-effects. This means that the smob needs to store everything
|
any side-effects. This means that the smob needs to store everything
|
||||||
that was passed to make-command. */
|
that was passed to make-command. */
|
||||||
|
|
||||||
typedef struct _command_smob
|
struct command_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -85,7 +85,7 @@ typedef struct _command_smob
|
|||||||
the object since a reference to it comes from non-gc-managed space
|
the object since a reference to it comes from non-gc-managed space
|
||||||
(the command context pointer). */
|
(the command context pointer). */
|
||||||
SCM containing_scm;
|
SCM containing_scm;
|
||||||
} command_smob;
|
};
|
||||||
|
|
||||||
static const char command_smob_name[] = "gdb:command";
|
static const char command_smob_name[] = "gdb:command";
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
One important invariant is that <gdb:exception> smobs are never a valid
|
One important invariant is that <gdb:exception> smobs are never a valid
|
||||||
result of a function, other than to signify an exception occurred. */
|
result of a function, other than to signify an exception occurred. */
|
||||||
|
|
||||||
typedef struct
|
struct exception_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -45,7 +45,7 @@ typedef struct
|
|||||||
/* The key and args parameters to "throw". */
|
/* The key and args parameters to "throw". */
|
||||||
SCM key;
|
SCM key;
|
||||||
SCM args;
|
SCM args;
|
||||||
} exception_smob;
|
};
|
||||||
|
|
||||||
static const char exception_smob_name[] = "gdb:exception";
|
static const char exception_smob_name[] = "gdb:exception";
|
||||||
|
|
||||||
|
|||||||
@@ -32,10 +32,9 @@
|
|||||||
#include "value.h"
|
#include "value.h"
|
||||||
#include "guile-internal.h"
|
#include "guile-internal.h"
|
||||||
|
|
||||||
/* The <gdb:frame> smob.
|
/* The <gdb:frame> smob. */
|
||||||
The typedef for this struct is in guile-internal.h. */
|
|
||||||
|
|
||||||
struct _frame_smob
|
struct frame_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
eqable_gdb_smob base;
|
eqable_gdb_smob base;
|
||||||
|
|||||||
@@ -55,10 +55,9 @@
|
|||||||
|
|
||||||
/* A smob for iterating over something.
|
/* A smob for iterating over something.
|
||||||
Typically this is used when computing a list of everything is
|
Typically this is used when computing a list of everything is
|
||||||
too expensive.
|
too expensive. */
|
||||||
The typedef for this struct is in guile-internal.h. */
|
|
||||||
|
|
||||||
struct _iterator_smob
|
struct iterator_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
/* The <gdb:lazy-string> smob. */
|
/* The <gdb:lazy-string> smob. */
|
||||||
|
|
||||||
typedef struct
|
struct lazy_string_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -58,7 +58,7 @@ typedef struct
|
|||||||
This is recorded as an SCM object so that we take advantage of support for
|
This is recorded as an SCM object so that we take advantage of support for
|
||||||
preserving the type should its owning objfile go away. */
|
preserving the type should its owning objfile go away. */
|
||||||
SCM type;
|
SCM type;
|
||||||
} lazy_string_smob;
|
};
|
||||||
|
|
||||||
static const char lazy_string_smob_name[] = "gdb:lazy-string";
|
static const char lazy_string_smob_name[] = "gdb:lazy-string";
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,9 @@
|
|||||||
#include "language.h"
|
#include "language.h"
|
||||||
#include "guile-internal.h"
|
#include "guile-internal.h"
|
||||||
|
|
||||||
/* The <gdb:objfile> smob.
|
/* The <gdb:objfile> smob. */
|
||||||
The typedef for this struct is in guile-internal.h. */
|
|
||||||
|
|
||||||
struct _objfile_smob
|
struct objfile_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ union pascm_variable
|
|||||||
N.B. There is no free function for this smob.
|
N.B. There is no free function for this smob.
|
||||||
All objects pointed to by this smob must live in GC space. */
|
All objects pointed to by this smob must live in GC space. */
|
||||||
|
|
||||||
typedef struct _param_smob
|
struct param_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -112,7 +112,7 @@ typedef struct _param_smob
|
|||||||
protect/unprotect the object since a reference to it comes from
|
protect/unprotect the object since a reference to it comes from
|
||||||
non-gc-managed space (the command context pointer). */
|
non-gc-managed space (the command context pointer). */
|
||||||
SCM containing_scm;
|
SCM containing_scm;
|
||||||
} param_smob;
|
};
|
||||||
|
|
||||||
static const char param_smob_name[] = "gdb:parameter";
|
static const char param_smob_name[] = "gdb:parameter";
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ private:
|
|||||||
|
|
||||||
/* Data for a memory port. */
|
/* Data for a memory port. */
|
||||||
|
|
||||||
typedef struct
|
struct ioscm_memory_port
|
||||||
{
|
{
|
||||||
/* Bounds of memory range this port is allowed to access: [start, end).
|
/* Bounds of memory range this port is allowed to access: [start, end).
|
||||||
This means that 0xff..ff is not accessible. I can live with that. */
|
This means that 0xff..ff is not accessible. I can live with that. */
|
||||||
@@ -80,7 +80,7 @@ typedef struct
|
|||||||
the user to specify these values to help get something similar. */
|
the user to specify these values to help get something similar. */
|
||||||
unsigned read_buf_size, write_buf_size;
|
unsigned read_buf_size, write_buf_size;
|
||||||
#endif
|
#endif
|
||||||
} ioscm_memory_port;
|
};
|
||||||
|
|
||||||
/* Copies of the original system input/output/error ports.
|
/* Copies of the original system input/output/error ports.
|
||||||
These are recorded for debugging purposes. */
|
These are recorded for debugging purposes. */
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ enum display_hint
|
|||||||
|
|
||||||
/* The <gdb:pretty-printer> smob. */
|
/* The <gdb:pretty-printer> smob. */
|
||||||
|
|
||||||
typedef struct
|
struct pretty_printer_smob
|
||||||
{
|
{
|
||||||
/* This must appear first. */
|
/* This must appear first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -77,11 +77,11 @@ typedef struct
|
|||||||
SCM lookup;
|
SCM lookup;
|
||||||
|
|
||||||
/* Note: Attaching subprinters to this smob is left to Scheme. */
|
/* Note: Attaching subprinters to this smob is left to Scheme. */
|
||||||
} pretty_printer_smob;
|
};
|
||||||
|
|
||||||
/* The <gdb:pretty-printer-worker> smob. */
|
/* The <gdb:pretty-printer-worker> smob. */
|
||||||
|
|
||||||
typedef struct
|
struct pretty_printer_worker_smob
|
||||||
{
|
{
|
||||||
/* This must appear first. */
|
/* This must appear first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -99,7 +99,7 @@ typedef struct
|
|||||||
The iterator returns a pair for each iteration: (name . value),
|
The iterator returns a pair for each iteration: (name . value),
|
||||||
where "value" can have the same types as to_string. */
|
where "value" can have the same types as to_string. */
|
||||||
SCM children;
|
SCM children;
|
||||||
} pretty_printer_worker_smob;
|
};
|
||||||
|
|
||||||
static const char pretty_printer_smob_name[] =
|
static const char pretty_printer_smob_name[] =
|
||||||
"gdb:pretty-printer";
|
"gdb:pretty-printer";
|
||||||
|
|||||||
@@ -28,10 +28,9 @@
|
|||||||
/* NOTE: Python exports the name "Progspace", so we export "progspace".
|
/* NOTE: Python exports the name "Progspace", so we export "progspace".
|
||||||
Internally we shorten that to "pspace". */
|
Internally we shorten that to "pspace". */
|
||||||
|
|
||||||
/* The <gdb:progspace> smob.
|
/* The <gdb:progspace> smob. */
|
||||||
The typedef for this struct is in guile-internal.h. */
|
|
||||||
|
|
||||||
struct _pspace_smob
|
struct pspace_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
|
|||||||
@@ -30,14 +30,14 @@
|
|||||||
|
|
||||||
/* The <gdb:symbol> smob. */
|
/* The <gdb:symbol> smob. */
|
||||||
|
|
||||||
typedef struct
|
struct symbol_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
eqable_gdb_smob base;
|
eqable_gdb_smob base;
|
||||||
|
|
||||||
/* The GDB symbol structure this smob is wrapping. */
|
/* The GDB symbol structure this smob is wrapping. */
|
||||||
struct symbol *symbol;
|
struct symbol *symbol;
|
||||||
} symbol_smob;
|
};
|
||||||
|
|
||||||
static const char symbol_smob_name[] = "gdb:symbol";
|
static const char symbol_smob_name[] = "gdb:symbol";
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
/* A <gdb:symtab> smob. */
|
/* A <gdb:symtab> smob. */
|
||||||
|
|
||||||
typedef struct
|
struct symtab_smob
|
||||||
{
|
{
|
||||||
/* This always appears first.
|
/* This always appears first.
|
||||||
eqable_gdb_smob is used so that symtabs are eq?-able.
|
eqable_gdb_smob is used so that symtabs are eq?-able.
|
||||||
@@ -42,7 +42,7 @@ typedef struct
|
|||||||
If this is NULL the symtab is invalid. This can happen when the
|
If this is NULL the symtab is invalid. This can happen when the
|
||||||
underlying objfile is freed. */
|
underlying objfile is freed. */
|
||||||
struct symtab *symtab;
|
struct symtab *symtab;
|
||||||
} symtab_smob;
|
};
|
||||||
|
|
||||||
/* A <gdb:sal> smob.
|
/* A <gdb:sal> smob.
|
||||||
A smob describing a gdb symtab-and-line object.
|
A smob describing a gdb symtab-and-line object.
|
||||||
@@ -50,7 +50,7 @@ typedef struct
|
|||||||
the validity of symtab_scm.
|
the validity of symtab_scm.
|
||||||
TODO: Sals are not eq?-able at the moment, or even comparable. */
|
TODO: Sals are not eq?-able at the moment, or even comparable. */
|
||||||
|
|
||||||
typedef struct
|
struct sal_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -67,7 +67,7 @@ typedef struct
|
|||||||
this pointer will not be updated. Use symtab_scm instead to determine
|
this pointer will not be updated. Use symtab_scm instead to determine
|
||||||
if this sal is valid. */
|
if this sal is valid. */
|
||||||
struct symtab_and_line sal;
|
struct symtab_and_line sal;
|
||||||
} sal_smob;
|
};
|
||||||
|
|
||||||
static const char symtab_smob_name[] = "gdb:symtab";
|
static const char symtab_smob_name[] = "gdb:symtab";
|
||||||
/* "symtab-and-line" is pretty long, and "sal" is short and unique. */
|
/* "symtab-and-line" is pretty long, and "sal" is short and unique. */
|
||||||
|
|||||||
@@ -34,10 +34,9 @@
|
|||||||
/* The <gdb:type> smob.
|
/* The <gdb:type> smob.
|
||||||
The type is chained with all types associated with its objfile, if any.
|
The type is chained with all types associated with its objfile, if any.
|
||||||
This lets us copy the underlying struct type when the objfile is
|
This lets us copy the underlying struct type when the objfile is
|
||||||
deleted.
|
deleted. */
|
||||||
The typedef for this struct is in guile-internal.h. */
|
|
||||||
|
|
||||||
struct _type_smob
|
struct type_smob
|
||||||
{
|
{
|
||||||
/* This always appears first.
|
/* This always appears first.
|
||||||
eqable_gdb_smob is used so that types are eq?-able.
|
eqable_gdb_smob is used so that types are eq?-able.
|
||||||
@@ -52,7 +51,7 @@ struct _type_smob
|
|||||||
|
|
||||||
/* A field smob. */
|
/* A field smob. */
|
||||||
|
|
||||||
typedef struct
|
struct field_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -62,7 +61,7 @@ typedef struct
|
|||||||
|
|
||||||
/* The field number in TYPE_SCM. */
|
/* The field number in TYPE_SCM. */
|
||||||
int field_num;
|
int field_num;
|
||||||
} field_smob;
|
};
|
||||||
|
|
||||||
static const char type_smob_name[] = "gdb:type";
|
static const char type_smob_name[] = "gdb:type";
|
||||||
static const char field_smob_name[] = "gdb:field";
|
static const char field_smob_name[] = "gdb:field";
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
/* The <gdb:value> smob. */
|
/* The <gdb:value> smob. */
|
||||||
|
|
||||||
typedef struct _value_smob
|
struct value_smob
|
||||||
{
|
{
|
||||||
/* This always appears first. */
|
/* This always appears first. */
|
||||||
gdb_smob base;
|
gdb_smob base;
|
||||||
@@ -42,8 +42,8 @@ typedef struct _value_smob
|
|||||||
/* Doubly linked list of values in values_in_scheme.
|
/* Doubly linked list of values in values_in_scheme.
|
||||||
IWBN to use a chained_gdb_smob instead, which is doable, it just requires
|
IWBN to use a chained_gdb_smob instead, which is doable, it just requires
|
||||||
a bit more casting than normal. */
|
a bit more casting than normal. */
|
||||||
struct _value_smob *next;
|
value_smob *next;
|
||||||
struct _value_smob *prev;
|
value_smob *prev;
|
||||||
|
|
||||||
struct value *value;
|
struct value *value;
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ typedef struct _value_smob
|
|||||||
SCM address;
|
SCM address;
|
||||||
SCM type;
|
SCM type;
|
||||||
SCM dynamic_type;
|
SCM dynamic_type;
|
||||||
} value_smob;
|
};
|
||||||
|
|
||||||
static const char value_smob_name[] = "gdb:value";
|
static const char value_smob_name[] = "gdb:value";
|
||||||
|
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ const char * const linespec_keywords[] = { "if", "thread", "task", "-force-condi
|
|||||||
|
|
||||||
/* A token of the linespec lexer */
|
/* A token of the linespec lexer */
|
||||||
|
|
||||||
struct ls_token
|
struct linespec_token
|
||||||
{
|
{
|
||||||
/* The type of the token */
|
/* The type of the token */
|
||||||
linespec_token_type type;
|
linespec_token_type type;
|
||||||
@@ -275,7 +275,6 @@ struct ls_token
|
|||||||
const char *keyword;
|
const char *keyword;
|
||||||
} data;
|
} data;
|
||||||
};
|
};
|
||||||
typedef struct ls_token linespec_token;
|
|
||||||
|
|
||||||
#define LS_TOKEN_STOKEN(TOK) (TOK).data.string
|
#define LS_TOKEN_STOKEN(TOK) (TOK).data.string
|
||||||
#define LS_TOKEN_KEYWORD(TOK) (TOK).data.keyword
|
#define LS_TOKEN_KEYWORD(TOK) (TOK).data.keyword
|
||||||
|
|||||||
@@ -23,10 +23,10 @@
|
|||||||
#include "disasm.h"
|
#include "disasm.h"
|
||||||
#include "python-internal.h"
|
#include "python-internal.h"
|
||||||
|
|
||||||
typedef struct arch_object_type_object {
|
struct arch_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
struct gdbarch *gdbarch;
|
struct gdbarch *gdbarch;
|
||||||
} arch_object;
|
};
|
||||||
|
|
||||||
static struct gdbarch_data *arch_object_data = NULL;
|
static struct gdbarch_data *arch_object_data = NULL;
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
#include "python-internal.h"
|
#include "python-internal.h"
|
||||||
#include "objfiles.h"
|
#include "objfiles.h"
|
||||||
|
|
||||||
typedef struct blpy_block_object {
|
struct block_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The GDB block structure that represents a frame's code block. */
|
/* The GDB block structure that represents a frame's code block. */
|
||||||
const struct block *block;
|
const struct block *block;
|
||||||
@@ -34,11 +34,11 @@ typedef struct blpy_block_object {
|
|||||||
struct objfile *objfile;
|
struct objfile *objfile;
|
||||||
/* Keep track of all blocks with a doubly-linked list. Needed for
|
/* Keep track of all blocks with a doubly-linked list. Needed for
|
||||||
block invalidation if the source object file has been freed. */
|
block invalidation if the source object file has been freed. */
|
||||||
struct blpy_block_object *prev;
|
block_object *prev;
|
||||||
struct blpy_block_object *next;
|
block_object *next;
|
||||||
} block_object;
|
};
|
||||||
|
|
||||||
typedef struct {
|
struct block_syms_iterator_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The block. */
|
/* The block. */
|
||||||
const struct block *block;
|
const struct block *block;
|
||||||
@@ -49,8 +49,8 @@ typedef struct {
|
|||||||
/* Pointer back to the original source block object. Needed to
|
/* Pointer back to the original source block object. Needed to
|
||||||
check if the block is still valid, and has not been invalidated
|
check if the block is still valid, and has not been invalidated
|
||||||
when an object file has been freed. */
|
when an object file has been freed. */
|
||||||
struct blpy_block_object *source;
|
block_object *source;
|
||||||
} block_syms_iterator_object;
|
};
|
||||||
|
|
||||||
/* Require a valid block. All access to block_object->block should be
|
/* Require a valid block. All access to block_object->block should be
|
||||||
gated by this call. */
|
gated by this call. */
|
||||||
@@ -293,7 +293,7 @@ set_block (block_object *obj, const struct block *block,
|
|||||||
if (objfile)
|
if (objfile)
|
||||||
{
|
{
|
||||||
obj->objfile = objfile;
|
obj->objfile = objfile;
|
||||||
obj->next = ((struct blpy_block_object *)
|
obj->next = ((block_object *)
|
||||||
objfile_data (objfile, blpy_objfile_data_key));
|
objfile_data (objfile, blpy_objfile_data_key));
|
||||||
if (obj->next)
|
if (obj->next)
|
||||||
obj->next->prev = obj;
|
obj->next->prev = obj;
|
||||||
|
|||||||
@@ -66,8 +66,6 @@ struct cmdpy_object
|
|||||||
struct cmd_list_element *sub_list;
|
struct cmd_list_element *sub_list;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct cmdpy_object cmdpy_object;
|
|
||||||
|
|
||||||
extern PyTypeObject cmdpy_object_type
|
extern PyTypeObject cmdpy_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("cmdpy_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("cmdpy_object");
|
||||||
|
|
||||||
|
|||||||
@@ -32,12 +32,12 @@
|
|||||||
#include "py-event-types.def"
|
#include "py-event-types.def"
|
||||||
#undef GDB_PY_DEFINE_EVENT_TYPE
|
#undef GDB_PY_DEFINE_EVENT_TYPE
|
||||||
|
|
||||||
typedef struct
|
struct event_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
PyObject *dict;
|
PyObject *dict;
|
||||||
} event_object;
|
};
|
||||||
|
|
||||||
extern int emit_continue_event (ptid_t ptid);
|
extern int emit_continue_event (ptid_t ptid);
|
||||||
extern int emit_exited_event (const LONGEST *exit_code, struct inferior *inf);
|
extern int emit_exited_event (const LONGEST *exit_code, struct inferior *inf);
|
||||||
|
|||||||
@@ -27,17 +27,17 @@
|
|||||||
/* Stores a list of objects to be notified when the event for which this
|
/* Stores a list of objects to be notified when the event for which this
|
||||||
registry tracks occurs. */
|
registry tracks occurs. */
|
||||||
|
|
||||||
typedef struct
|
struct eventregistry_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
PyObject *callbacks;
|
PyObject *callbacks;
|
||||||
} eventregistry_object;
|
};
|
||||||
|
|
||||||
/* Struct holding references to event registries both in python and c.
|
/* Struct holding references to event registries both in python and c.
|
||||||
This is meant to be a singleton. */
|
This is meant to be a singleton. */
|
||||||
|
|
||||||
typedef struct
|
struct events_object
|
||||||
{
|
{
|
||||||
#define GDB_PY_DEFINE_EVENT(name) \
|
#define GDB_PY_DEFINE_EVENT(name) \
|
||||||
eventregistry_object *name;
|
eventregistry_object *name;
|
||||||
@@ -46,7 +46,7 @@ typedef struct
|
|||||||
|
|
||||||
PyObject *module;
|
PyObject *module;
|
||||||
|
|
||||||
} events_object;
|
};
|
||||||
|
|
||||||
/* Python events singleton. */
|
/* Python events singleton. */
|
||||||
extern events_object gdb_py_events;
|
extern events_object gdb_py_events;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
#include "symfile.h"
|
#include "symfile.h"
|
||||||
#include "objfiles.h"
|
#include "objfiles.h"
|
||||||
|
|
||||||
typedef struct {
|
struct frame_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
struct frame_id frame_id;
|
struct frame_id frame_id;
|
||||||
struct gdbarch *gdbarch;
|
struct gdbarch *gdbarch;
|
||||||
@@ -42,7 +42,7 @@ typedef struct {
|
|||||||
ID as the previous frame). Whenever get_prev_frame returns NULL, we
|
ID as the previous frame). Whenever get_prev_frame returns NULL, we
|
||||||
record the frame_id of the next frame and set FRAME_ID_IS_NEXT to 1. */
|
record the frame_id of the next frame and set FRAME_ID_IS_NEXT to 1. */
|
||||||
int frame_id_is_next;
|
int frame_id_is_next;
|
||||||
} frame_object;
|
};
|
||||||
|
|
||||||
/* Require a valid frame. This must be called inside a TRY_CATCH, or
|
/* Require a valid frame. This must be called inside a TRY_CATCH, or
|
||||||
another context in which a gdb exception is allowed. */
|
another context in which a gdb exception is allowed. */
|
||||||
|
|||||||
@@ -61,14 +61,14 @@ extern PyTypeObject inferior_object_type
|
|||||||
|
|
||||||
static const struct inferior_data *infpy_inf_data_key;
|
static const struct inferior_data *infpy_inf_data_key;
|
||||||
|
|
||||||
typedef struct {
|
struct membuf_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
void *buffer;
|
void *buffer;
|
||||||
|
|
||||||
/* These are kept just for mbpy_str. */
|
/* These are kept just for mbpy_str. */
|
||||||
CORE_ADDR addr;
|
CORE_ADDR addr;
|
||||||
CORE_ADDR length;
|
CORE_ADDR length;
|
||||||
} membuf_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject membuf_object_type
|
extern PyTypeObject membuf_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("membuf_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("membuf_object");
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ PyTypeObject py_insn_type = {
|
|||||||
|
|
||||||
/* Python instruction object. */
|
/* Python instruction object. */
|
||||||
|
|
||||||
typedef struct {
|
struct py_insn_obj {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
} py_insn_obj;
|
};
|
||||||
|
|
||||||
/* Getter function for gdb.Instruction attributes. */
|
/* Getter function for gdb.Instruction attributes. */
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
#include "valprint.h"
|
#include "valprint.h"
|
||||||
#include "language.h"
|
#include "language.h"
|
||||||
|
|
||||||
typedef struct {
|
struct lazy_string_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
/* Holds the address of the lazy string. */
|
/* Holds the address of the lazy string. */
|
||||||
@@ -51,7 +51,7 @@ typedef struct {
|
|||||||
This is recorded as a PyObject so that we take advantage of support for
|
This is recorded as a PyObject so that we take advantage of support for
|
||||||
preserving the type should its owning objfile go away. */
|
preserving the type should its owning objfile go away. */
|
||||||
PyObject *type;
|
PyObject *type;
|
||||||
} lazy_string_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject lazy_string_object_type
|
extern PyTypeObject lazy_string_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("lazy_string_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("lazy_string_object");
|
||||||
|
|||||||
@@ -20,29 +20,29 @@
|
|||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
#include "python-internal.h"
|
#include "python-internal.h"
|
||||||
|
|
||||||
typedef struct {
|
struct linetable_entry_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The line table source line. */
|
/* The line table source line. */
|
||||||
int line;
|
int line;
|
||||||
/* The pc associated with the source line. */
|
/* The pc associated with the source line. */
|
||||||
CORE_ADDR pc;
|
CORE_ADDR pc;
|
||||||
} linetable_entry_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject linetable_entry_object_type
|
extern PyTypeObject linetable_entry_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_entry_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_entry_object");
|
||||||
|
|
||||||
typedef struct {
|
struct linetable_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The symtab python object. We store the Python object here as the
|
/* The symtab python object. We store the Python object here as the
|
||||||
underlying symtab can become invalid, and we have to run validity
|
underlying symtab can become invalid, and we have to run validity
|
||||||
checks on it. */
|
checks on it. */
|
||||||
PyObject *symtab;
|
PyObject *symtab;
|
||||||
} linetable_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject linetable_object_type
|
extern PyTypeObject linetable_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_object");
|
||||||
|
|
||||||
typedef struct {
|
struct ltpy_iterator_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The current entry in the line table for the iterator */
|
/* The current entry in the line table for the iterator */
|
||||||
int current_index;
|
int current_index;
|
||||||
@@ -50,7 +50,7 @@ typedef struct {
|
|||||||
check if the line table is still valid, and has not been invalidated
|
check if the line table is still valid, and has not been invalidated
|
||||||
when an object file has been freed. */
|
when an object file has been freed. */
|
||||||
PyObject *source;
|
PyObject *source;
|
||||||
} ltpy_iterator_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject ltpy_iterator_object_type
|
extern PyTypeObject ltpy_iterator_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("ltpy_iterator_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("ltpy_iterator_object");
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "build-id.h"
|
#include "build-id.h"
|
||||||
#include "symtab.h"
|
#include "symtab.h"
|
||||||
|
|
||||||
typedef struct
|
struct objfile_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ typedef struct
|
|||||||
|
|
||||||
/* The debug method matcher list. */
|
/* The debug method matcher list. */
|
||||||
PyObject *xmethods;
|
PyObject *xmethods;
|
||||||
} objfile_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject objfile_object_type
|
extern PyTypeObject objfile_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("objfile_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("objfile_object");
|
||||||
|
|||||||
@@ -91,8 +91,6 @@ struct parmpy_object
|
|||||||
const char **enumeration;
|
const char **enumeration;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct parmpy_object parmpy_object;
|
|
||||||
|
|
||||||
extern PyTypeObject parmpy_object_type
|
extern PyTypeObject parmpy_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("parmpy_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("parmpy_object");
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
#include "solib.h"
|
#include "solib.h"
|
||||||
#include "block.h"
|
#include "block.h"
|
||||||
|
|
||||||
typedef struct
|
struct pspace_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ typedef struct
|
|||||||
|
|
||||||
/* The debug method list. */
|
/* The debug method list. */
|
||||||
PyObject *xmethods;
|
PyObject *xmethods;
|
||||||
} pspace_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject pspace_object_type
|
extern PyTypeObject pspace_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pspace_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pspace_object");
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
/* Python object for btrace record lists. */
|
/* Python object for btrace record lists. */
|
||||||
|
|
||||||
typedef struct {
|
struct btpy_list_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
/* The thread this list belongs to. */
|
/* The thread this list belongs to. */
|
||||||
@@ -57,7 +57,7 @@ typedef struct {
|
|||||||
|
|
||||||
/* Either &BTPY_CALL_TYPE or &RECPY_INSN_TYPE. */
|
/* Either &BTPY_CALL_TYPE or &RECPY_INSN_TYPE. */
|
||||||
PyTypeObject* element_type;
|
PyTypeObject* element_type;
|
||||||
} btpy_list_object;
|
};
|
||||||
|
|
||||||
/* Python type for btrace lists. */
|
/* Python type for btrace lists. */
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ PyTypeObject recpy_gap_type = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Python RecordGap object. */
|
/* Python RecordGap object. */
|
||||||
typedef struct
|
struct recpy_gap_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ typedef struct
|
|||||||
|
|
||||||
/* Element number. */
|
/* Element number. */
|
||||||
Py_ssize_t number;
|
Py_ssize_t number;
|
||||||
} recpy_gap_object;
|
};
|
||||||
|
|
||||||
/* Implementation of record.method. */
|
/* Implementation of record.method. */
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "record.h"
|
#include "record.h"
|
||||||
|
|
||||||
/* Python Record object. */
|
/* Python Record object. */
|
||||||
typedef struct
|
struct recpy_record_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -34,12 +34,12 @@ typedef struct
|
|||||||
|
|
||||||
/* The current recording method. */
|
/* The current recording method. */
|
||||||
enum record_method method;
|
enum record_method method;
|
||||||
} recpy_record_object;
|
};
|
||||||
|
|
||||||
/* Python recorded element object. This is generic enough to represent
|
/* Python recorded element object. This is generic enough to represent
|
||||||
recorded instructions as well as recorded function call segments, hence the
|
recorded instructions as well as recorded function call segments, hence the
|
||||||
generic name. */
|
generic name. */
|
||||||
typedef struct
|
struct recpy_element_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ typedef struct
|
|||||||
|
|
||||||
/* Element number. */
|
/* Element number. */
|
||||||
Py_ssize_t number;
|
Py_ssize_t number;
|
||||||
} recpy_element_object;
|
};
|
||||||
|
|
||||||
/* Python RecordInstruction type. */
|
/* Python RecordInstruction type. */
|
||||||
extern PyTypeObject recpy_insn_type;
|
extern PyTypeObject recpy_insn_type;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
static struct gdbarch_data *gdbpy_register_object_data = NULL;
|
static struct gdbarch_data *gdbpy_register_object_data = NULL;
|
||||||
|
|
||||||
/* Structure for iterator over register descriptors. */
|
/* Structure for iterator over register descriptors. */
|
||||||
typedef struct {
|
struct register_descriptor_iterator_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
/* The register group that the user is iterating over. This will never
|
/* The register group that the user is iterating over. This will never
|
||||||
@@ -42,13 +42,13 @@ typedef struct {
|
|||||||
|
|
||||||
/* Pointer back to the architecture we're finding registers for. */
|
/* Pointer back to the architecture we're finding registers for. */
|
||||||
struct gdbarch *gdbarch;
|
struct gdbarch *gdbarch;
|
||||||
} register_descriptor_iterator_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject register_descriptor_iterator_object_type
|
extern PyTypeObject register_descriptor_iterator_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_iterator_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_iterator_object");
|
||||||
|
|
||||||
/* A register descriptor. */
|
/* A register descriptor. */
|
||||||
typedef struct {
|
struct register_descriptor_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
/* The register this is a descriptor for. */
|
/* The register this is a descriptor for. */
|
||||||
@@ -56,13 +56,13 @@ typedef struct {
|
|||||||
|
|
||||||
/* The architecture this is a register for. */
|
/* The architecture this is a register for. */
|
||||||
struct gdbarch *gdbarch;
|
struct gdbarch *gdbarch;
|
||||||
} register_descriptor_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject register_descriptor_object_type
|
extern PyTypeObject register_descriptor_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_object");
|
||||||
|
|
||||||
/* Structure for iterator over register groups. */
|
/* Structure for iterator over register groups. */
|
||||||
typedef struct {
|
struct reggroup_iterator_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
/* The last register group returned. Initially this will be NULL. */
|
/* The last register group returned. Initially this will be NULL. */
|
||||||
@@ -70,18 +70,18 @@ typedef struct {
|
|||||||
|
|
||||||
/* Pointer back to the architecture we're finding registers for. */
|
/* Pointer back to the architecture we're finding registers for. */
|
||||||
struct gdbarch *gdbarch;
|
struct gdbarch *gdbarch;
|
||||||
} reggroup_iterator_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject reggroup_iterator_object_type
|
extern PyTypeObject reggroup_iterator_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_iterator_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_iterator_object");
|
||||||
|
|
||||||
/* A register group object. */
|
/* A register group object. */
|
||||||
typedef struct {
|
struct reggroup_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
/* The register group being described. */
|
/* The register group being described. */
|
||||||
struct reggroup *reggroup;
|
struct reggroup *reggroup;
|
||||||
} reggroup_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject reggroup_object_type
|
extern PyTypeObject reggroup_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_object");
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "objfiles.h"
|
#include "objfiles.h"
|
||||||
#include "symfile.h"
|
#include "symfile.h"
|
||||||
|
|
||||||
typedef struct sympy_symbol_object {
|
struct symbol_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The GDB symbol structure this object is wrapping. */
|
/* The GDB symbol structure this object is wrapping. */
|
||||||
struct symbol *symbol;
|
struct symbol *symbol;
|
||||||
@@ -33,9 +33,9 @@ typedef struct sympy_symbol_object {
|
|||||||
doubly-linked list, rooted in the objfile. This lets us
|
doubly-linked list, rooted in the objfile. This lets us
|
||||||
invalidate the underlying struct symbol when the objfile is
|
invalidate the underlying struct symbol when the objfile is
|
||||||
deleted. */
|
deleted. */
|
||||||
struct sympy_symbol_object *prev;
|
symbol_object *prev;
|
||||||
struct sympy_symbol_object *next;
|
symbol_object *next;
|
||||||
} symbol_object;
|
};
|
||||||
|
|
||||||
/* Require a valid symbol. All access to symbol_object->symbol should be
|
/* Require a valid symbol. All access to symbol_object->symbol should be
|
||||||
gated by this call. */
|
gated by this call. */
|
||||||
@@ -307,7 +307,7 @@ set_symbol (symbol_object *obj, struct symbol *symbol)
|
|||||||
{
|
{
|
||||||
struct objfile *objfile = symbol_objfile (symbol);
|
struct objfile *objfile = symbol_objfile (symbol);
|
||||||
|
|
||||||
obj->next = ((struct sympy_symbol_object *)
|
obj->next = ((symbol_object *)
|
||||||
objfile_data (objfile, sympy_objfile_data_key));
|
objfile_data (objfile, sympy_objfile_data_key));
|
||||||
if (obj->next)
|
if (obj->next)
|
||||||
obj->next->prev = obj;
|
obj->next->prev = obj;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "objfiles.h"
|
#include "objfiles.h"
|
||||||
#include "block.h"
|
#include "block.h"
|
||||||
|
|
||||||
typedef struct stpy_symtab_object {
|
struct symtab_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The GDB Symbol table structure. */
|
/* The GDB Symbol table structure. */
|
||||||
struct symtab *symtab;
|
struct symtab *symtab;
|
||||||
@@ -33,9 +33,9 @@ typedef struct stpy_symtab_object {
|
|||||||
a doubly-linked list, rooted in the objfile. This allows
|
a doubly-linked list, rooted in the objfile. This allows
|
||||||
invalidation of the underlying struct symtab when the objfile is
|
invalidation of the underlying struct symtab when the objfile is
|
||||||
deleted. */
|
deleted. */
|
||||||
struct stpy_symtab_object *prev;
|
symtab_object *prev;
|
||||||
struct stpy_symtab_object *next;
|
symtab_object *next;
|
||||||
} symtab_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject symtab_object_type
|
extern PyTypeObject symtab_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("symtab_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("symtab_object");
|
||||||
@@ -54,7 +54,7 @@ static const struct objfile_data *stpy_objfile_data_key;
|
|||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
typedef struct salpy_sal_object {
|
struct sal_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The GDB Symbol table structure. */
|
/* The GDB Symbol table structure. */
|
||||||
PyObject *symtab;
|
PyObject *symtab;
|
||||||
@@ -64,9 +64,9 @@ typedef struct salpy_sal_object {
|
|||||||
track with a doubly-linked list, rooted in the objfile. This
|
track with a doubly-linked list, rooted in the objfile. This
|
||||||
allows invalidation of the underlying struct symtab_and_line
|
allows invalidation of the underlying struct symtab_and_line
|
||||||
when the objfile is deleted. */
|
when the objfile is deleted. */
|
||||||
struct salpy_sal_object *prev;
|
sal_object *prev;
|
||||||
struct salpy_sal_object *next;
|
sal_object *next;
|
||||||
} sal_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject sal_object_type
|
extern PyTypeObject sal_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("sal_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("sal_object");
|
||||||
@@ -378,7 +378,7 @@ set_sal (sal_object *sal_obj, struct symtab_and_line sal)
|
|||||||
symtab *symtab = symtab_object_to_symtab (sal_obj->symtab);
|
symtab *symtab = symtab_object_to_symtab (sal_obj->symtab);
|
||||||
|
|
||||||
sal_obj->next
|
sal_obj->next
|
||||||
= ((struct salpy_sal_object *) objfile_data (SYMTAB_OBJFILE (symtab),
|
= ((sal_object *) objfile_data (SYMTAB_OBJFILE (symtab),
|
||||||
salpy_objfile_data_key));
|
salpy_objfile_data_key));
|
||||||
if (sal_obj->next)
|
if (sal_obj->next)
|
||||||
sal_obj->next->prev = sal_obj;
|
sal_obj->next->prev = sal_obj;
|
||||||
@@ -405,7 +405,7 @@ set_symtab (symtab_object *obj, struct symtab *symtab)
|
|||||||
if (symtab)
|
if (symtab)
|
||||||
{
|
{
|
||||||
obj->next
|
obj->next
|
||||||
= ((struct stpy_symtab_object *)
|
= ((symtab_object *)
|
||||||
objfile_data (SYMTAB_OBJFILE (symtab), stpy_objfile_data_key));
|
objfile_data (SYMTAB_OBJFILE (symtab), stpy_objfile_data_key));
|
||||||
if (obj->next)
|
if (obj->next)
|
||||||
obj->next->prev = obj;
|
obj->next->prev = obj;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
#include "language.h"
|
#include "language.h"
|
||||||
#include "typeprint.h"
|
#include "typeprint.h"
|
||||||
|
|
||||||
typedef struct pyty_type_object
|
struct type_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
struct type *type;
|
struct type *type;
|
||||||
@@ -36,35 +36,35 @@ typedef struct pyty_type_object
|
|||||||
/* If a Type object is associated with an objfile, it is kept on a
|
/* If a Type object is associated with an objfile, it is kept on a
|
||||||
doubly-linked list, rooted in the objfile. This lets us copy the
|
doubly-linked list, rooted in the objfile. This lets us copy the
|
||||||
underlying struct type when the objfile is deleted. */
|
underlying struct type when the objfile is deleted. */
|
||||||
struct pyty_type_object *prev;
|
struct type_object *prev;
|
||||||
struct pyty_type_object *next;
|
struct type_object *next;
|
||||||
} type_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject type_object_type
|
extern PyTypeObject type_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("type_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("type_object");
|
||||||
|
|
||||||
/* A Field object. */
|
/* A Field object. */
|
||||||
typedef struct pyty_field_object
|
struct field_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
/* Dictionary holding our attributes. */
|
/* Dictionary holding our attributes. */
|
||||||
PyObject *dict;
|
PyObject *dict;
|
||||||
} field_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject field_object_type
|
extern PyTypeObject field_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("field_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("field_object");
|
||||||
|
|
||||||
/* A type iterator object. */
|
/* A type iterator object. */
|
||||||
typedef struct {
|
struct typy_iterator_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
/* The current field index. */
|
/* The current field index. */
|
||||||
int field;
|
int field;
|
||||||
/* What to return. */
|
/* What to return. */
|
||||||
enum gdbpy_iter_kind kind;
|
enum gdbpy_iter_kind kind;
|
||||||
/* Pointer back to the original source type object. */
|
/* Pointer back to the original source type object. */
|
||||||
struct pyty_type_object *source;
|
type_object *source;
|
||||||
} typy_iterator_object;
|
};
|
||||||
|
|
||||||
extern PyTypeObject type_iterator_object_type
|
extern PyTypeObject type_iterator_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("typy_iterator_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("typy_iterator_object");
|
||||||
@@ -1101,7 +1101,7 @@ set_type (type_object *obj, struct type *type)
|
|||||||
{
|
{
|
||||||
struct objfile *objfile = TYPE_OBJFILE (type);
|
struct objfile *objfile = TYPE_OBJFILE (type);
|
||||||
|
|
||||||
obj->next = ((struct pyty_type_object *)
|
obj->next = ((type_object *)
|
||||||
objfile_data (objfile, typy_objfile_data_key));
|
objfile_data (objfile, typy_objfile_data_key));
|
||||||
if (obj->next)
|
if (obj->next)
|
||||||
obj->next->prev = obj;
|
obj->next->prev = obj;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#define TRACE_PY_UNWIND(level, args...) if (pyuw_debug >= level) \
|
#define TRACE_PY_UNWIND(level, args...) if (pyuw_debug >= level) \
|
||||||
{ fprintf_unfiltered (gdb_stdlog, args); }
|
{ fprintf_unfiltered (gdb_stdlog, args); }
|
||||||
|
|
||||||
typedef struct
|
struct pending_frame_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ typedef struct
|
|||||||
|
|
||||||
/* Its architecture, passed by the sniffer caller. */
|
/* Its architecture, passed by the sniffer caller. */
|
||||||
struct gdbarch *gdbarch;
|
struct gdbarch *gdbarch;
|
||||||
} pending_frame_object;
|
};
|
||||||
|
|
||||||
/* Saved registers array item. */
|
/* Saved registers array item. */
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ struct saved_reg
|
|||||||
/* The data we keep for the PyUnwindInfo: pending_frame, saved registers
|
/* The data we keep for the PyUnwindInfo: pending_frame, saved registers
|
||||||
and frame ID. */
|
and frame ID. */
|
||||||
|
|
||||||
typedef struct
|
struct unwind_info_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -71,12 +71,12 @@ typedef struct
|
|||||||
|
|
||||||
/* Saved registers array. */
|
/* Saved registers array. */
|
||||||
std::vector<saved_reg> *saved_regs;
|
std::vector<saved_reg> *saved_regs;
|
||||||
} unwind_info_object;
|
};
|
||||||
|
|
||||||
/* The data we keep for a frame we can unwind: frame ID and an array of
|
/* The data we keep for a frame we can unwind: frame ID and an array of
|
||||||
(register_number, register_value) pairs. */
|
(register_number, register_value) pairs. */
|
||||||
|
|
||||||
typedef struct
|
struct cached_frame_info
|
||||||
{
|
{
|
||||||
/* Frame ID. */
|
/* Frame ID. */
|
||||||
struct frame_id frame_id;
|
struct frame_id frame_id;
|
||||||
@@ -88,7 +88,7 @@ typedef struct
|
|||||||
int reg_count;
|
int reg_count;
|
||||||
|
|
||||||
cached_reg_t reg[];
|
cached_reg_t reg[];
|
||||||
} cached_frame_info;
|
};
|
||||||
|
|
||||||
extern PyTypeObject pending_frame_object_type
|
extern PyTypeObject pending_frame_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pending_frame_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pending_frame_object");
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
#define builtin_type_pychar \
|
#define builtin_type_pychar \
|
||||||
language_string_char_type (python_language, python_gdbarch)
|
language_string_char_type (python_language, python_gdbarch)
|
||||||
|
|
||||||
typedef struct value_object {
|
struct value_object {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
struct value_object *next;
|
struct value_object *next;
|
||||||
struct value_object *prev;
|
struct value_object *prev;
|
||||||
@@ -61,7 +61,7 @@ typedef struct value_object {
|
|||||||
PyObject *address;
|
PyObject *address;
|
||||||
PyObject *type;
|
PyObject *type;
|
||||||
PyObject *dynamic_type;
|
PyObject *dynamic_type;
|
||||||
} value_object;
|
};
|
||||||
|
|
||||||
/* List of all values which are currently exposed to Python. It is
|
/* List of all values which are currently exposed to Python. It is
|
||||||
maintained so that when an objfile is discarded, preserve_values
|
maintained so that when an objfile is discarded, preserve_values
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ extern PyTypeObject frame_object_type
|
|||||||
extern PyTypeObject thread_object_type
|
extern PyTypeObject thread_object_type
|
||||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("thread_object");
|
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("thread_object");
|
||||||
|
|
||||||
typedef struct gdbpy_breakpoint_object
|
struct gdbpy_breakpoint_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ typedef struct gdbpy_breakpoint_object
|
|||||||
|
|
||||||
/* 1 is this is a FinishBreakpoint object, 0 otherwise. */
|
/* 1 is this is a FinishBreakpoint object, 0 otherwise. */
|
||||||
int is_finish_bp;
|
int is_finish_bp;
|
||||||
} gdbpy_breakpoint_object;
|
};
|
||||||
|
|
||||||
/* Require that BREAKPOINT be a valid breakpoint ID; throw a Python
|
/* Require that BREAKPOINT be a valid breakpoint ID; throw a Python
|
||||||
exception if it is invalid. */
|
exception if it is invalid. */
|
||||||
@@ -361,7 +361,7 @@ typedef struct gdbpy_breakpoint_object
|
|||||||
extern gdbpy_breakpoint_object *bppy_pending_object;
|
extern gdbpy_breakpoint_object *bppy_pending_object;
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
struct thread_object
|
||||||
{
|
{
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
|
||||||
@@ -370,7 +370,7 @@ typedef struct
|
|||||||
|
|
||||||
/* The Inferior object to which this thread belongs. */
|
/* The Inferior object to which this thread belongs. */
|
||||||
PyObject *inf_obj;
|
PyObject *inf_obj;
|
||||||
} thread_object;
|
};
|
||||||
|
|
||||||
struct inferior_object;
|
struct inferior_object;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user