aboutsummaryrefslogtreecommitdiff
path: root/gas/dwarf2dbg.h
blob: dda8ab279ac2a331821dee0e911a6a7115cb6f26 (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
42
43
44
45
46
47
48
#ifndef AS_DWARF2DBG_H
#define AS_DWARF2DBG_H

#include "as.h"

#define DWARF2_FLAG_BEGIN_STMT	(1 << 0)	/* beginning of statement */
#define DWARF2_FLAG_BEGIN_BLOCK	(1 << 1)	/* beginning of basic block */

struct dwarf2_line_info
  {
    char *filename;
    unsigned int filenum;
    unsigned int line;
    unsigned int column;
    unsigned int flags;
  };

/* Implements the .file FILENO "FILENAME" directive.  FILENO can be 0
   to indicate that no file number has been assigned.  All real file
   number must be >0.  */
extern void dwarf2_directive_file (int dummy);

/* Implements the .loc FILENO LINENO [COLUMN] directive.  FILENO is
   the file number, LINENO the line number and the (optional) COLUMN
   the column of the source code that the following instruction
   corresponds to.  FILENO can be 0 to indicate that the filename
   specified by the textually most recent .file directive should be
   used.  */
extern void dwarf2_directive_loc (int dummy);

/* Returns the current source information.  If .file directives have
   been encountered, the info for the corresponding source file is
   returned.  Otherwise, the info for the assembly source file is
   returned.  */
extern void dwarf2_where (struct dwarf2_line_info *l);

/* This function generates .debug_line info based on the address and
   source information passed in the arguments.  ADDR should be the
   frag-relative offset of the instruction the information is for and
   L is the source information that should be associated with that
   address. */
extern void dwarf2_gen_line_info (bfd_vma addr, struct dwarf2_line_info *l);

/* Must be called after all other input is processed to finish up the
   .debug_line section.  */
extern void dwarf2_finish (void);

#endif /* AS_DWARF2DBG_H */