projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* linux-nat.c (enum sigchld_state): Delete.
[deliverable/binutils-gdb.git]
/
gdb
/
source.c
diff --git
a/gdb/source.c
b/gdb/source.c
index a5f434f9e2f9a0f444125523469d13d5f5a07279..50f3510f130c4157012580c25e8d5f3cce3e3b74 100644
(file)
--- a/
gdb/source.c
+++ b/
gdb/source.c
@@
-1,7
+1,7
@@
/* List lines of source files for GDB, the GNU debugger.
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
/* List lines of source files for GDB, the GNU debugger.
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
- 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
- Free Software Foundation, Inc.
+ 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
,
+
2009
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-822,7
+822,7
@@
done:
Else, this functions returns 0, and FULL_PATHNAME is set to NULL. */
int
Else, this functions returns 0, and FULL_PATHNAME is set to NULL. */
int
-source_full_path_of (char *filename, char **full_pathname)
+source_full_path_of (c
onst c
har *filename, char **full_pathname)
{
int fd;
{
int fd;
@@
-1064,7
+1064,7
@@
symtab_to_fullname (struct symtab *s)
r = find_and_open_source (s->objfile, s->filename, s->dirname,
&s->fullname);
r = find_and_open_source (s->objfile, s->filename, s->dirname,
&s->fullname);
- if (r)
+ if (r
>= 0
)
{
close (r);
return s->fullname;
{
close (r);
return s->fullname;
@@
-1093,7
+1093,7
@@
psymtab_to_fullname (struct partial_symtab *ps)
r = find_and_open_source (ps->objfile, ps->filename, ps->dirname,
&ps->fullname);
r = find_and_open_source (ps->objfile, ps->filename, ps->dirname,
&ps->fullname);
- if (r
)
+ if (r
>= 0)
{
close (r);
return ps->fullname;
{
close (r);
return ps->fullname;
@@
-1251,6
+1251,7
@@
static int
get_filename_and_charpos (struct symtab *s, char **fullname)
{
int desc, linenums_changed = 0;
get_filename_and_charpos (struct symtab *s, char **fullname)
{
int desc, linenums_changed = 0;
+ struct cleanup *cleanups;
desc = open_source_file (s);
if (desc < 0)
desc = open_source_file (s);
if (desc < 0)
@@
-1259,13
+1260,14
@@
get_filename_and_charpos (struct symtab *s, char **fullname)
*fullname = NULL;
return 0;
}
*fullname = NULL;
return 0;
}
+ cleanups = make_cleanup_close (desc);
if (fullname)
*fullname = s->fullname;
if (s->line_charpos == 0)
linenums_changed = 1;
if (linenums_changed)
find_source_lines (s, desc);
if (fullname)
*fullname = s->fullname;
if (s->line_charpos == 0)
linenums_changed = 1;
if (linenums_changed)
find_source_lines (s, desc);
-
close (desc
);
+
do_cleanups (cleanups
);
return linenums_changed;
}
return linenums_changed;
}
@@
-1312,6
+1314,7
@@
print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
int desc;
FILE *stream;
int nlines = stopline - line;
int desc;
FILE *stream;
int nlines = stopline - line;
+ struct cleanup *cleanup;
/* Regardless of whether we can open the file, set current_source_symtab. */
current_source_symtab = s;
/* Regardless of whether we can open the file, set current_source_symtab. */
current_source_symtab = s;
@@
-1378,6
+1381,7
@@
print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
stream = fdopen (desc, FDOPEN_MODE);
clearerr (stream);
stream = fdopen (desc, FDOPEN_MODE);
clearerr (stream);
+ cleanup = make_cleanup_fclose (stream);
while (nlines-- > 0)
{
while (nlines-- > 0)
{
@@
-1417,7
+1421,7
@@
print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
while (c != '\n' && (c = fgetc (stream)) >= 0);
}
while (c != '\n' && (c = fgetc (stream)) >= 0);
}
-
fclose (stream
);
+
do_cleanups (cleanup
);
}
\f
/* Show source lines from the file of symtab S, starting with line
}
\f
/* Show source lines from the file of symtab S, starting with line
@@
-1538,6
+1542,7
@@
forward_search_command (char *regex, int from_tty)
FILE *stream;
int line;
char *msg;
FILE *stream;
int line;
char *msg;
+ struct cleanup *cleanups;
line = last_line_listed + 1;
line = last_line_listed + 1;
@@
-1551,24
+1556,21
@@
forward_search_command (char *regex, int from_tty)
desc = open_source_file (current_source_symtab);
if (desc < 0)
perror_with_name (current_source_symtab->filename);
desc = open_source_file (current_source_symtab);
if (desc < 0)
perror_with_name (current_source_symtab->filename);
+ cleanups = make_cleanup_close (desc);
if (current_source_symtab->line_charpos == 0)
find_source_lines (current_source_symtab, desc);
if (line < 1 || line > current_source_symtab->nlines)
if (current_source_symtab->line_charpos == 0)
find_source_lines (current_source_symtab, desc);
if (line < 1 || line > current_source_symtab->nlines)
- {
- close (desc);
- error (_("Expression not found"));
- }
+ error (_("Expression not found"));
if (lseek (desc, current_source_symtab->line_charpos[line - 1], 0) < 0)
if (lseek (desc, current_source_symtab->line_charpos[line - 1], 0) < 0)
- {
- close (desc);
- perror_with_name (current_source_symtab->filename);
- }
+ perror_with_name (current_source_symtab->filename);
+ discard_cleanups (cleanups);
stream = fdopen (desc, FDOPEN_MODE);
clearerr (stream);
stream = fdopen (desc, FDOPEN_MODE);
clearerr (stream);
+ cleanups = make_cleanup_fclose (stream);
while (1)
{
static char *buf = NULL;
while (1)
{
static char *buf = NULL;
@@
-1620,7
+1622,7
@@
forward_search_command (char *regex, int from_tty)
}
printf_filtered (_("Expression not found\n"));
}
printf_filtered (_("Expression not found\n"));
-
fclose (stream
);
+
do_cleanups (cleanups
);
}
static void
}
static void
@@
-1631,6
+1633,7
@@
reverse_search_command (char *regex, int from_tty)
FILE *stream;
int line;
char *msg;
FILE *stream;
int line;
char *msg;
+ struct cleanup *cleanups;
line = last_line_listed - 1;
line = last_line_listed - 1;
@@
-1644,24
+1647,21
@@
reverse_search_command (char *regex, int from_tty)
desc = open_source_file (current_source_symtab);
if (desc < 0)
perror_with_name (current_source_symtab->filename);
desc = open_source_file (current_source_symtab);
if (desc < 0)
perror_with_name (current_source_symtab->filename);
+ cleanups = make_cleanup_close (desc);
if (current_source_symtab->line_charpos == 0)
find_source_lines (current_source_symtab, desc);
if (line < 1 || line > current_source_symtab->nlines)
if (current_source_symtab->line_charpos == 0)
find_source_lines (current_source_symtab, desc);
if (line < 1 || line > current_source_symtab->nlines)
- {
- close (desc);
- error (_("Expression not found"));
- }
+ error (_("Expression not found"));
if (lseek (desc, current_source_symtab->line_charpos[line - 1], 0) < 0)
if (lseek (desc, current_source_symtab->line_charpos[line - 1], 0) < 0)
- {
- close (desc);
- perror_with_name (current_source_symtab->filename);
- }
+ perror_with_name (current_source_symtab->filename);
+ discard_cleanups (cleanups);
stream = fdopen (desc, FDOPEN_MODE);
clearerr (stream);
stream = fdopen (desc, FDOPEN_MODE);
clearerr (stream);
+ cleanups = make_cleanup_fclose (stream);
while (line > 1)
{
/* FIXME!!! We walk right off the end of buf if we get a long line!!! */
while (line > 1)
{
/* FIXME!!! We walk right off the end of buf if we get a long line!!! */
@@
-1707,7
+1707,7
@@
reverse_search_command (char *regex, int from_tty)
}
printf_filtered (_("Expression not found\n"));
}
printf_filtered (_("Expression not found\n"));
-
fclose (stream
);
+
do_cleanups (cleanups
);
return;
}
return;
}
@@
-1746,7
+1746,7
@@
find_substitute_path_rule (const char *from)
/* Add a new substitute-path rule at the end of the current list of rules.
The new rule will replace FROM into TO. */
/* Add a new substitute-path rule at the end of the current list of rules.
The new rule will replace FROM into TO. */
-
static
void
+void
add_substitute_path_rule (char *from, char *to)
{
struct substitute_path_rule *rule;
add_substitute_path_rule (char *from, char *to)
{
struct substitute_path_rule *rule;
This page took
0.027864 seconds
and
4
git commands to generate.