binutils-gdb/bfd/core.c

107 lines
2.5 KiB
C
Raw Normal View History

/* Core file generic interface routines for BFD.
Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1991-12-01 08:39:12 +08:00
/*
SECTION
Core files
DESCRIPTION
1993-11-06 03:51:52 +08:00
These are functions pertaining to core files.
1991-07-05 01:52:19 +09:00
*/
#include "bfd.h"
#include "sysdep.h"
1991-07-05 01:52:19 +09:00
#include "libbfd.h"
1991-12-01 08:39:12 +08:00
/*
FUNCTION
bfd_core_file_failing_command
SYNOPSIS
1993-11-06 03:51:52 +08:00
CONST char *bfd_core_file_failing_command(bfd *abfd);
1991-12-01 08:39:12 +08:00
DESCRIPTION
1993-11-06 03:51:52 +08:00
Return a read-only string explaining which program was running
when it failed and produced the core file @var{abfd}.
1991-07-05 01:52:19 +09:00
*/
CONST char *
bfd_core_file_failing_command (abfd)
bfd *abfd;
1991-07-05 01:52:19 +09:00
{
if (abfd->format != bfd_core) {
bfd_set_error (bfd_error_invalid_operation);
1991-07-05 01:52:19 +09:00
return NULL;
}
return BFD_SEND (abfd, _core_file_failing_command, (abfd));
}
1991-12-01 08:39:12 +08:00
/*
FUNCTION
bfd_core_file_failing_signal
1991-07-05 01:52:19 +09:00
SYNOPSIS
1993-11-06 03:51:52 +08:00
int bfd_core_file_failing_signal(bfd *abfd);
1991-12-01 08:39:12 +08:00
DESCRIPTION
Returns the signal number which caused the core dump which
1993-11-06 03:51:52 +08:00
generated the file the BFD @var{abfd} is attached to.
1991-07-05 01:52:19 +09:00
*/
1991-12-01 08:39:12 +08:00
1991-07-05 01:52:19 +09:00
int
bfd_core_file_failing_signal (abfd)
bfd *abfd;
{
if (abfd->format != bfd_core) {
bfd_set_error (bfd_error_invalid_operation);
1991-07-05 01:52:19 +09:00
return 0;
}
return BFD_SEND (abfd, _core_file_failing_signal, (abfd));
}
1991-12-01 08:39:12 +08:00
/*
FUNCTION
core_file_matches_executable_p
SYNOPSIS
boolean core_file_matches_executable_p
(bfd *core_bfd, bfd *exec_bfd);
1991-12-01 08:39:12 +08:00
DESCRIPTION
1993-11-06 03:51:52 +08:00
Return <<true>> if the core file attached to @var{core_bfd}
1991-12-01 08:39:12 +08:00
was generated by a run of the executable file attached to
1993-11-06 12:10:25 +08:00
@var{exec_bfd}, <<false>> otherwise.
1991-07-05 01:52:19 +09:00
*/
boolean
core_file_matches_executable_p (core_bfd, exec_bfd)
bfd *core_bfd, *exec_bfd;
{
1991-12-01 08:39:12 +08:00
if ((core_bfd->format != bfd_core) || (exec_bfd->format != bfd_object)) {
bfd_set_error (bfd_error_wrong_format);
1991-12-01 08:39:12 +08:00
return false;
}
1991-07-05 01:52:19 +09:00
1991-12-01 08:39:12 +08:00
return BFD_SEND (core_bfd, _core_file_matches_executable_p,
(core_bfd, exec_bfd));
1991-07-05 01:52:19 +09:00
}