some more code to handle dbginfo

This commit is contained in:
hyunghwan.chung
2019-07-08 15:41:57 +00:00
parent b88900eda2
commit e6d7cbd767
2 changed files with 77 additions and 68 deletions

View File

@ -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 ... */
};