summaryrefslogtreecommitdiff
path: root/mono/mini/dwarfwriter.h
blob: 490f821fb7962a7fab679ea03dea9aeff395ee57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * dwarfwriter.h: Creation of DWARF debug information
 *
 * Author:
 *   Zoltan Varga (vargaz@gmail.com)
 *
 * (C) 2008-2009 Novell, Inc.
 */

#ifndef __MONO_DWARF_WRITER_H__
#define __MONO_DWARF_WRITER_H__

#include "config.h"
#include "image-writer.h"
#include "mini.h"

#include <mono/metadata/debug-mono-symfile.h>

#include <glib.h>

typedef struct _MonoDwarfWriter MonoDwarfWriter;

MonoDwarfWriter* mono_dwarf_writer_create (MonoImageWriter *writer, FILE *il_file, int il_file_start_line, gboolean appending, gboolean emit_line_numbers) MONO_INTERNAL;

void mono_dwarf_writer_destroy (MonoDwarfWriter *w) MONO_INTERNAL;

void mono_dwarf_writer_emit_base_info (MonoDwarfWriter *w, GSList *base_unwind_program) MONO_INTERNAL;

void mono_dwarf_writer_close (MonoDwarfWriter *w) MONO_INTERNAL;

int mono_dwarf_writer_get_il_file_line_index (MonoDwarfWriter *w) MONO_INTERNAL;

void mono_dwarf_writer_emit_trampoline (MonoDwarfWriter *w, const char *tramp_name, char *start_symbol, char *end_symbol, guint8 *code, guint32 code_size, GSList *unwind_info) MONO_INTERNAL;

void
mono_dwarf_writer_emit_method (MonoDwarfWriter *w, MonoCompile *cfg, MonoMethod *method, char *start_symbol, char *end_symbol, guint8 *code, guint32 code_size, MonoInst **args, MonoInst **locals, GSList *unwind_info, MonoDebugMethodJitInfo *debug_info) MONO_INTERNAL;

char *
mono_dwarf_escape_path (const char *name);

#endif