aboutsummaryrefslogtreecommitdiff
path: root/gdb/source.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/source.c')
-rw-r--r--gdb/source.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gdb/source.c b/gdb/source.c
index bf8760b..ae3a70d 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -17,6 +17,7 @@ You should have received a copy of the GNU General Public License
along with GDB; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+#include <stdio.h>
#include "defs.h"
#include "symtab.h"
#include "param.h"
@@ -26,7 +27,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <fcntl.h>
#endif
-#include <stdio.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/file.h>
@@ -370,12 +370,14 @@ find_source_lines (s, desc)
int *line_charpos = (int *) xmalloc (lines_allocated * sizeof (int));
extern int exec_mtime;
- fstat (desc, &st);
+ if (fstat (desc, &st) < 0)
+ perror_with_name (s->filename);
if (get_exec_file (0) != 0 && exec_mtime < st.st_mtime)
printf ("Source file is more recent than executable.\n");
data = (char *) alloca (st.st_size);
- myread (desc, data, st.st_size);
+ if (myread (desc, data, st.st_size) < 0)
+ perror_with_name (s->filename);
end = data + st.st_size;
p = data;
line_charpos[0] = 0;
@@ -525,8 +527,8 @@ print_source_lines (s, line, stopline, noerror)
if (line < 1 || line > s->nlines)
{
close (desc);
- error ("Line number out of range; %s has %d lines.",
- s->filename, s->nlines);
+ error ("Line number %d out of range; %s has %d lines.",
+ line, s->filename, s->nlines);
}
if (lseek (desc, s->line_charpos[line - 1], 0) < 0)