GDB (xrefs)
Classes | Macros | Functions | Variables
/tmp/gdb-7.10/gdb/source.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "symtab.h"
#include "expression.h"
#include "language.h"
#include "command.h"
#include "source.h"
#include "gdbcmd.h"
#include "frame.h"
#include "value.h"
#include "filestuff.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "gdbcore.h"
#include "gdb_regex.h"
#include "symfile.h"
#include "objfiles.h"
#include "annotate.h"
#include "gdbtypes.h"
#include "linespec.h"
#include "filenames.h"
#include "completer.h"
#include "ui-out.h"
#include "readline/readline.h"

Go to the source code of this file.

Classes

struct  substitute_path_rule
 

Macros

#define OPEN_MODE   (O_RDONLY | O_BINARY)
 
#define FDOPEN_MODE   FOPEN_RB
 
#define cdir_len   5
 

Functions

void _initialize_source (void)
 
static int get_filename_and_charpos (struct symtab *, char **)
 
static void reverse_search_command (char *, int)
 
static void forward_search_command (char *, int)
 
static void line_info (char *, int)
 
static void source_info (char *, int)
 
static void show_lines_to_list (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void show_filename_display_string (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
int get_first_line_listed (void)
 
static void clear_lines_listed_range (void)
 
int get_lines_to_list (void)
 
struct symtab_and_line get_current_source_symtab_and_line (void)
 
void set_default_source_symtab_and_line (void)
 
struct symtab_and_line set_current_source_symtab_and_line (const struct symtab_and_line *sal)
 
void clear_current_source_symtab_and_line (void)
 
void select_source_symtab (struct symtab *s)
 
static void set_directories_command (char *args, int from_tty, struct cmd_list_element *c)
 
static void show_directories_1 (char *ignore, int from_tty)
 
static void show_directories_command (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
void forget_cached_source_info_for_objfile (struct objfile *objfile)
 
void forget_cached_source_info (void)
 
void init_source_path (void)
 
static void directory_command (char *dirname, int from_tty)
 
void directory_switch (char *dirname, int from_tty)
 
void mod_path (char *dirname, char **which_path)
 
void add_path (char *dirname, char **which_path, int parse_separators)
 
static int is_regular_file (const char *name)
 
int openp (const char *path, int opts, const char *string, int mode, char **filename_opened)
 
int source_full_path_of (const char *filename, char **full_pathname)
 
static int substitute_path_rule_matches (const struct substitute_path_rule *rule, const char *path)
 
static struct substitute_path_ruleget_substitute_path_rule (const char *path)
 
char * rewrite_source_path (const char *path)
 
int find_and_open_source (const char *filename, const char *dirname, char **fullname)
 
int open_source_file (struct symtab *s)
 
const char * symtab_to_fullname (struct symtab *s)
 
const char * symtab_to_filename_for_display (struct symtab *symtab)
 
void find_source_lines (struct symtab *s, int desc)
 
int identify_source_line (struct symtab *s, int line, int mid_statement, CORE_ADDR pc)
 
static void print_source_lines_base (struct symtab *s, int line, int stopline, enum print_source_lines_flags flags)
 
void print_source_lines (struct symtab *s, int line, int stopline, enum print_source_lines_flags flags)
 
static void strip_trailing_directory_separator (char *path)
 
static struct substitute_path_rulefind_substitute_path_rule (const char *from)
 
void add_substitute_path_rule (char *from, char *to)
 
static void delete_substitute_path_rule (struct substitute_path_rule *rule)
 
static void show_substitute_path_command (char *args, int from_tty)
 
static void unset_substitute_path_command (char *args, int from_tty)
 
static void set_substitute_path_command (char *args, int from_tty)
 

Variables

char * source_path
 
static struct substitute_path_rulesubstitute_path_rules = NULL
 
static struct symtabcurrent_source_symtab
 
static int current_source_line
 
static struct program_spacecurrent_source_pspace
 
int lines_to_list = 10
 
static const char filename_display_basename [] = "basename"
 
static const char filename_display_relative [] = "relative"
 
static const char filename_display_absolute [] = "absolute"
 
static const char *const filename_display_kind_names []
 
static const char * filename_display_string = filename_display_relative
 
static int last_line_listed
 
static int first_line_listed
 
static struct symtablast_source_visited = NULL
 
static int last_source_error = 0
 

Macro Definition Documentation

#define cdir_len   5

Referenced by find_and_open_source().

#define FDOPEN_MODE   FOPEN_RB
#define OPEN_MODE   (O_RDONLY | O_BINARY)

Definition at line 46 of file source.c.

Referenced by find_and_open_source().

Function Documentation

void _initialize_source ( void  )
void add_path ( char *  dirname,
char **  which_path,
int  parse_separators 
)
void add_substitute_path_rule ( char *  from,
char *  to 
)
void clear_current_source_symtab_and_line ( void  )

Definition at line 242 of file source.c.

References current_source_line.

Referenced by clear_symtab_users(), and free_objfile().

static void clear_lines_listed_range ( void  )
static

Definition at line 160 of file source.c.

References first_line_listed, and last_line_listed.

Referenced by identify_source_line(), and set_current_source_symtab_and_line().

static void delete_substitute_path_rule ( struct substitute_path_rule rule)
static
static void directory_command ( char *  dirname,
int  from_tty 
)
static
void directory_switch ( char *  dirname,
int  from_tty 
)

Definition at line 451 of file source.c.

References add_path(), and source_path.

Referenced by captured_main().

int find_and_open_source ( const char *  filename,
const char *  dirname,
char **  fullname 
)
void find_source_lines ( struct symtab s,
int  desc 
)
static struct substitute_path_rule* find_substitute_path_rule ( const char *  from)
static
void forget_cached_source_info ( void  )
void forget_cached_source_info_for_objfile ( struct objfile objfile)
static void forward_search_command ( char *  regex,
int  from_tty 
)
static
struct symtab_and_line get_current_source_symtab_and_line ( void  )
static int get_filename_and_charpos ( struct symtab s,
char **  fullname 
)
static
int get_first_line_listed ( void  )

Definition at line 151 of file source.c.

References first_line_listed.

Referenced by list_command().

int get_lines_to_list ( void  )

Definition at line 172 of file source.c.

References lines_to_list.

Referenced by edit_command(), and list_command().

static struct substitute_path_rule* get_substitute_path_rule ( const char *  path)
static
int identify_source_line ( struct symtab s,
int  line,
int  mid_statement,
CORE_ADDR  pc 
)
void init_source_path ( void  )
static int is_regular_file ( const char *  name)
static

Definition at line 689 of file source.c.

References status.

Referenced by openp().

static void line_info ( char *  arg,
int  from_tty 
)
static
void mod_path ( char *  dirname,
char **  which_path 
)

Definition at line 459 of file source.c.

References add_path().

Referenced by directory_command(), path_command(), and set_directories_command().

int open_source_file ( struct symtab s)
int openp ( const char *  path,
int  opts,
const char *  string,
int  mode,
char **  filename_opened 
)
void print_source_lines ( struct symtab s,
int  line,
int  stopline,
enum print_source_lines_flags  flags 
)
static void print_source_lines_base ( struct symtab s,
int  line,
int  stopline,
enum print_source_lines_flags  flags 
)
static
static void reverse_search_command ( char *  regex,
int  from_tty 
)
static
char* rewrite_source_path ( const char *  path)
void select_source_symtab ( struct symtab s)
struct symtab_and_line set_current_source_symtab_and_line ( const struct symtab_and_line sal)
void set_default_source_symtab_and_line ( void  )
static void set_directories_command ( char *  args,
int  from_tty,
struct cmd_list_element c 
)
static

Definition at line 329 of file source.c.

References init_source_path(), mod_path(), source_path, and xfree().

Referenced by _initialize_source().

static void set_substitute_path_command ( char *  args,
int  from_tty 
)
static
static void show_directories_1 ( char *  ignore,
int  from_tty 
)
static

Definition at line 351 of file source.c.

References puts_filtered(), and source_path.

Referenced by directory_command(), and show_directories_command().

static void show_directories_command ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
)
static

Definition at line 361 of file source.c.

References show_directories_1().

Referenced by _initialize_source().

static void show_filename_display_string ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
)
static

Definition at line 123 of file source.c.

References _, and fprintf_filtered().

Referenced by _initialize_source().

static void show_lines_to_list ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
)
static

Definition at line 99 of file source.c.

References _, and fprintf_filtered().

Referenced by _initialize_source().

static void show_substitute_path_command ( char *  args,
int  from_tty 
)
static
int source_full_path_of ( const char *  filename,
char **  full_pathname 
)

Definition at line 914 of file source.c.

References openp(), OPF_RETURN_REALPATH, OPF_SEARCH_IN_PATH, OPF_TRY_CWD_FIRST, and source_path.

Referenced by exec_file_locate_attach().

static void source_info ( char *  ignore,
int  from_tty 
)
static
static void strip_trailing_directory_separator ( char *  path)
static

Definition at line 1783 of file source.c.

Referenced by set_substitute_path_command().

static int substitute_path_rule_matches ( const struct substitute_path_rule rule,
const char *  path 
)
static

Definition at line 935 of file source.c.

References substitute_path_rule::from.

Referenced by get_substitute_path_rule(), and show_substitute_path_command().

const char* symtab_to_filename_for_display ( struct symtab symtab)
const char* symtab_to_fullname ( struct symtab s)
static void unset_substitute_path_command ( char *  args,
int  from_tty 
)
static

Variable Documentation

int current_source_line
static
struct program_space* current_source_pspace
static
struct symtab* current_source_symtab
static
const char filename_display_absolute[] = "absolute"
static

Definition at line 111 of file source.c.

Referenced by symtab_to_filename_for_display().

const char filename_display_basename[] = "basename"
static

Definition at line 109 of file source.c.

Referenced by symtab_to_filename_for_display().

const char* const filename_display_kind_names[]
static
Initial value:
= {
NULL
}
static const char filename_display_absolute[]
Definition: source.c:111
static const char filename_display_relative[]
Definition: source.c:110
static const char filename_display_basename[]
Definition: source.c:109

Definition at line 113 of file source.c.

Referenced by _initialize_source().

const char filename_display_relative[] = "relative"
static

Definition at line 110 of file source.c.

Referenced by symtab_to_filename_for_display().

const char* filename_display_string = filename_display_relative
static

Definition at line 120 of file source.c.

Referenced by _initialize_source(), and symtab_to_filename_for_display().

int first_line_listed
static
int last_line_listed
static
int last_source_error = 0
static

Definition at line 144 of file source.c.

Referenced by print_source_lines_base().

struct symtab* last_source_visited = NULL
static

Definition at line 143 of file source.c.

int lines_to_list = 10
char* source_path
struct substitute_path_rule* substitute_path_rules = NULL
static