some more code to handle dbginfo
This commit is contained in:
@ -949,16 +949,18 @@ struct moo_dbginfo_t
|
||||
{
|
||||
moo_oow_t _capa;
|
||||
moo_oow_t _len;
|
||||
moo_oow_t _last_class; /* offset to the last class element added */
|
||||
moo_oow_t _last_file; /* offset to the last file element added */
|
||||
moo_oow_t _last_class; /* offset to the last class element added */
|
||||
moo_oow_t _last_method;
|
||||
/* actual information is recorded here */
|
||||
};
|
||||
|
||||
enum moo_dbginfo_type_t
|
||||
{
|
||||
/* bit 8 to bit 15 */
|
||||
MOO_DBGINFO_TYPE_CODE_CLASS = 0,
|
||||
MOO_DBGINFO_TYPE_CODE_FILE = 1,
|
||||
MOO_DBGINFO_TYPE_CODE_FILE = 0,
|
||||
MOO_DBGINFO_TYPE_CODE_CLASS = 1,
|
||||
/* TODO: interface? etc? */
|
||||
MOO_DBGINFO_TYPE_CODE_METHOD = 2,
|
||||
|
||||
/* low 8 bits */
|
||||
@ -968,33 +970,35 @@ typedef enum moo_dbginfo_type_t moo_dbginfo_type_t;
|
||||
|
||||
#define MOO_DBGINFO_MAKE_TYPE(code,flags) (((code) << 8) | (flags))
|
||||
|
||||
typedef struct moo_dbginfo_class_t moo_dbginfo_class_t;
|
||||
struct moo_dbginfo_class_t
|
||||
{
|
||||
moo_oow_t _type;
|
||||
moo_oow_t _len;
|
||||
moo_oow_t _next; /* offset to a previous class */
|
||||
/* ... class name here ... */
|
||||
};
|
||||
|
||||
typedef struct moo_dbginfo_file_t moo_dbginfo_file_t;
|
||||
struct moo_dbginfo_file_t
|
||||
{
|
||||
moo_oow_t _type;
|
||||
moo_oow_t _len;
|
||||
moo_oow_t _next;
|
||||
moo_oow_t name_len;
|
||||
/* ... file path here ... */
|
||||
};
|
||||
|
||||
typedef struct moo_dbginfo_class_t moo_dbginfo_class_t;
|
||||
struct moo_dbginfo_class_t
|
||||
{
|
||||
moo_oow_t _type;
|
||||
moo_oow_t _next; /* offset to a previous class */
|
||||
moo_oow_t _file;
|
||||
moo_oow_t _line;
|
||||
moo_oow_t name_len;
|
||||
/* ... class name here ... */
|
||||
};
|
||||
|
||||
typedef struct moo_dbginfo_method_t moo_dbginfo_method_t;
|
||||
struct moo_dbginfo_method_t
|
||||
{
|
||||
moo_oow_t _type;
|
||||
moo_oow_t _name_len;
|
||||
moo_oow_t _code_len;
|
||||
moo_oow_t _next;
|
||||
moo_oow_t _class;
|
||||
moo_oow_t _file;
|
||||
moo_oow_t _class;
|
||||
moo_oow_t name_len;
|
||||
moo_oow_t code_loc_len;
|
||||
/* ... method name here ... */
|
||||
/* ... code info here ... */
|
||||
};
|
||||
|
Reference in New Issue
Block a user