Files
FlaxEngine/Source/ThirdParty/mono-2.0/mono/metadata/debug-internals.h
2020-12-07 23:40:54 +01:00

91 lines
2.1 KiB
C

#ifndef __DEBUG_INTERNALS_H__
#define __DEBUG_INTERNALS_H__
#include <glib.h>
#include <mono/metadata/debug-helpers.h>
#include <mono/metadata/mono-debug.h>
#include <mono/utils/mono-compiler.h>
struct _MonoDebugMethodInfo {
MonoMethod *method;
MonoDebugHandle *handle;
uint32_t index;
uint32_t data_offset;
uint32_t lnt_offset;
};
typedef struct {
int parent;
int type;
/* IL offsets */
int start_offset, end_offset;
} MonoDebugCodeBlock;
typedef struct {
char *name;
int index;
/* Might be null for the main scope */
MonoDebugCodeBlock *block;
} MonoDebugLocalVar;
/*
* Information about local variables retrieved from a symbol file.
*/
struct _MonoDebugLocalsInfo {
int num_locals;
MonoDebugLocalVar *locals;
int num_blocks;
MonoDebugCodeBlock *code_blocks;
};
/*
* Information about method await yield and resume offsets retrieved from a symbol file.
*/
struct _MonoDebugMethodAsyncInfo {
uint32_t catch_handler_offset;
int num_awaits;
uint32_t *yield_offsets;
uint32_t *resume_offsets;
uint32_t *move_next_method_token;
};
struct _MonoDebugLineNumberEntry {
uint32_t il_offset;
uint32_t native_offset;
};
/*
* Information about a source file retrieved from a symbol file.
*/
typedef struct {
char *source_file;
/* 16 byte long */
guint8 *guid, *hash;
} MonoDebugSourceInfo;
typedef struct {
int il_offset;
int line, column;
int end_line, end_column;
} MonoSymSeqPoint;
void mono_debugger_lock (void);
void mono_debugger_unlock (void);
void
mono_debug_get_seq_points (MonoDebugMethodInfo *minfo, char **source_file, GPtrArray **source_file_list, int **source_files, MonoSymSeqPoint **seq_points, int *n_seq_points);
MONO_API void
mono_debug_free_locals (MonoDebugLocalsInfo *info);
void
mono_debug_free_method_async_debug_info (MonoDebugMethodAsyncInfo *info);
gboolean
mono_debug_image_has_debug_info (MonoImage *image);
MonoDebugSourceLocation *
mono_debug_lookup_source_location_by_il (MonoMethod *method, guint32 il_offset, MonoDomain *domain);
#endif /* __DEBUG_INTERNALS_H__ */