/* Core file generic interface routines for BFD.
- Copyright 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2002, 2003, 2005,
- 2007 Free Software Foundation, Inc.
+ Copyright (C) 1990-2019 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
return BFD_SEND (abfd, _core_file_failing_signal, (abfd));
}
+/*
+FUNCTION
+ bfd_core_file_pid
+
+SYNOPSIS
+ int bfd_core_file_pid (bfd *abfd);
+
+DESCRIPTION
+
+ Returns the PID of the process the core dump the BFD
+ @var{abfd} is attached to was generated from.
+*/
+
+int
+bfd_core_file_pid (bfd *abfd)
+{
+ if (abfd->format != bfd_core)
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ return 0;
+ }
+ return BFD_SEND (abfd, _core_file_pid, (abfd));
+}
+
+
/*
FUNCTION
core_file_matches_executable_p
/*
FUNCTION
- generic_core_file_matches_executable_p
+ generic_core_file_matches_executable_p
SYNOPSIS
- bfd_boolean generic_core_file_matches_executable_p
- (bfd *core_bfd, bfd *exec_bfd);
+ bfd_boolean generic_core_file_matches_executable_p
+ (bfd *core_bfd, bfd *exec_bfd);
DESCRIPTION
- Return TRUE if the core file attached to @var{core_bfd}
- was generated by a run of the executable file attached
- to @var{exec_bfd}. The match is based on executable
- basenames only.
-
- Note: When not able to determine the core file failing
- command or the executable name, we still return TRUE even
- though we're not sure that core file and executable match.
- This is to avoid generating a false warning in situations
- where we really don't know whether they match or not.
+ Return TRUE if the core file attached to @var{core_bfd}
+ was generated by a run of the executable file attached
+ to @var{exec_bfd}. The match is based on executable
+ basenames only.
+
+ Note: When not able to determine the core file failing
+ command or the executable name, we still return TRUE even
+ though we're not sure that core file and executable match.
+ This is to avoid generating a false warning in situations
+ where we really don't know whether they match or not.
*/
bfd_boolean
generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
{
- char *exec;
- char *core;
- char *last_slash;
+ const char *exec;
+ const char *core;
+ const char *last_slash;
if (exec_bfd == NULL || core_bfd == NULL)
return TRUE;
of the const char * returned by bfd_core_file_failing_command to a
non-const char *. In this case, the assignement does not lead to
breaking the const, as we're only reading the string. */
-
- core = (char *) bfd_core_file_failing_command (core_bfd);
+
+ core = bfd_core_file_failing_command (core_bfd);
if (core == NULL)
return TRUE;
last_slash = strrchr (exec, '/');
if (last_slash != NULL)
exec = last_slash + 1;
-
- return strcmp (exec, core) == 0;
+
+ return filename_cmp (exec, core) == 0;
}