58 lines
2 KiB
C
58 lines
2 KiB
C
|
/* $Header$ */
|
||
|
|
||
|
/* maps from address to filename-lineno pair and reverse,
|
||
|
maps from filename-lineno pair or address to scope.
|
||
|
*/
|
||
|
|
||
|
typedef unsigned int t_lineno;
|
||
|
typedef long t_addr;
|
||
|
#define ILL_ADDR ((t_addr) -1)
|
||
|
#define NO_ADDR ((t_addr) -3)
|
||
|
|
||
|
typedef struct pos {
|
||
|
t_lineno lineno;
|
||
|
char *filename;
|
||
|
} t_position, *p_position;
|
||
|
|
||
|
/* extern char *get_filename_from_addr(t_addr t);
|
||
|
Returns the source filename that contains the code at the address 't',
|
||
|
or 0 if there is no information available, or 't' represents an address
|
||
|
below the start address of the first file.
|
||
|
*/
|
||
|
extern char *get_filename_from_addr();
|
||
|
|
||
|
/* extern t_lineno get_lineno_from_addr(t_addr t);
|
||
|
Returns the source line number of the line that contains the code at address
|
||
|
't'. 0 is returned if no source line number could be found.
|
||
|
*/
|
||
|
extern t_lineno get_lineno_from_addr();
|
||
|
|
||
|
/* extern p_position get_position_from_addr(t_addr t);
|
||
|
Returns a pointer to a structure containing the source position of the code
|
||
|
at address 't'. 0 is returned if no source position could be found.
|
||
|
*/
|
||
|
extern p_position get_position_from_addr();
|
||
|
|
||
|
/* extern t_addr get_addr_from_position(p_position p);
|
||
|
Returns the address of the code at position 'p', or ILL_ADDR if it could
|
||
|
not be found. If there is no symbolic information for the filename in
|
||
|
position 'p', an error message will be given.
|
||
|
*/
|
||
|
extern t_addr get_addr_from_position();
|
||
|
|
||
|
/* extern add_position_addr(char *filename, struct outname *n);
|
||
|
Adds the ('filename','n'->on_desc),'n'->on_valu pair to the mapping information.
|
||
|
*/
|
||
|
extern add_position_addr();
|
||
|
|
||
|
/* extern struct scope *get_scope_from_position(p_position p);
|
||
|
Returns the scope of the code at position 'p', or 0 if it could not be found.
|
||
|
*/
|
||
|
extern struct scope *get_scope_from_position();
|
||
|
|
||
|
/* extern p_position print_position(t_addr a, int print_function);
|
||
|
Prints position 'a' and returns it. If 'print_function' is set,
|
||
|
an attempt is made to print the function name as well.
|
||
|
*/
|
||
|
extern p_position print_position();
|