char *ppdb_path;
GArray *pdb_checksum_hash_type = g_array_new (FALSE, TRUE, sizeof (char*));
GArray *pdb_checksum = g_array_new (FALSE, TRUE, sizeof (guint8*));
- gboolean has_debug_info = get_pe_debug_info_full (ass->image, pe_guid, &pe_age, &pe_timestamp, &ppdb_data, &ppdb_size, &ppdb_compressed_size, &ppdb_path, pdb_checksum_hash_type, pdb_checksum);
+ gboolean has_debug_info = mono_get_pe_debug_info_full (ass->image, pe_guid, &pe_age, &pe_timestamp, &ppdb_data, &ppdb_size, &ppdb_compressed_size, &ppdb_path, pdb_checksum_hash_type, pdb_checksum);
if (!has_debug_info || ppdb_size > 0)
{
buffer_add_byte (buf, 0);
g_array_free (pdb_checksum, TRUE);
break;
}
+ case MDBGPROT_CMD_ASSEMBLY_HAS_DEBUG_INFO_LOADED: {
+ MonoImage* image = ass->image;
+ MonoDebugHandle* handle = mono_debug_get_handle (image);
+ if (!handle) {
+ buffer_add_byte (buf, 0);
+ return ERR_NONE;
+ }
+ MonoPPDBFile* ppdb = handle->ppdb;
+ if (ppdb) {
+ image = mono_ppdb_get_image (ppdb);
+ buffer_add_byte (buf, image->raw_data_len > 0);
+ } else {
+ buffer_add_byte (buf, 0);
+ }
+ break;
+ }
default:
return ERR_NOT_IMPLEMENTED;
}
MDBGPROT_CMD_ASSEMBLY_GET_CATTRS = 14,
MDBGPROT_CMD_ASSEMBLY_GET_CUSTOM_ATTRIBUTES = 15,
MDBGPROT_CMD_ASSEMBLY_GET_PEIMAGE_ADDRESS = 16,
- MDBGPROT_CMD_ASSEMBLY_GET_DEBUG_INFORMATION = 17
+ MDBGPROT_CMD_ASSEMBLY_GET_DEBUG_INFORMATION = 17,
+ MDBGPROT_CMD_ASSEMBLY_HAS_DEBUG_INFO_LOADED = 18
} MdbgProtCmdAssembly;
typedef enum {
};
gboolean
-get_pe_debug_info_full (MonoImage *image, guint8 *out_guid, gint32 *out_age, gint32 *out_timestamp, guint8 **ppdb_data,
+mono_get_pe_debug_info_full (MonoImage *image, guint8 *out_guid, gint32 *out_age, gint32 *out_timestamp, guint8 **ppdb_data,
int *ppdb_uncompressed_size, int *ppdb_compressed_size, char **pdb_path, GArray *pdb_checksum_hash_type, GArray *pdb_checksum)
{
MonoPEDirEntry *debug_dir_entry;
get_pe_debug_info (MonoImage *image, guint8 *out_guid, gint32 *out_age, gint32 *out_timestamp, guint8 **ppdb_data,
int *ppdb_uncompressed_size, int *ppdb_compressed_size)
{
- return get_pe_debug_info_full (image, out_guid, out_age, out_timestamp, ppdb_data, ppdb_uncompressed_size, ppdb_compressed_size, NULL, NULL, NULL);
+ return mono_get_pe_debug_info_full (image, out_guid, out_age, out_timestamp, ppdb_data, ppdb_uncompressed_size, ppdb_compressed_size, NULL, NULL, NULL);
}
static void
mono_create_ppdb_file (MonoImage *ppdb_image, gboolean is_embedded_ppdb);
MONO_COMPONENT_API gboolean
-get_pe_debug_info_full (MonoImage *image, guint8 *out_guid, gint32 *out_age, gint32 *out_timestamp, guint8 **ppdb_data,
+mono_get_pe_debug_info_full (MonoImage *image, guint8 *out_guid, gint32 *out_age, gint32 *out_timestamp, guint8 **ppdb_data,
int *ppdb_uncompressed_size, int *ppdb_compressed_size, char **pdb_path, GArray *pdb_checksum_hash_type, GArray *pdb_checksum);
#endif