binutils-2.25.1.tar.gz
GNU binutils是一组二进制工具集。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip
代码片段和文件信息
/* BFD back-end for AIX on PS/2 core files.
This was based on trad-core.c which was written by John Gilmore of
Cygnus Support.
Copyright (C) 1988-2014 Free Software Foundation Inc.
Written by Minh Tran-Le .
Converted to back end form by Ian Lance Taylor .
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 3 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. 51 Franklin Street - Fifth Floor Boston
MA 02110-1301 USA. */
#include “sysdep.h“
#include “bfd.h“
#include “libbfd.h“
#include “coff/i386.h“
#include “coff/internal.h“
#include “libcoff.h“
#include
#if defined (_AIX) && defined (_I386)
#define NOCHECKS /* This is for coredump.h. */
#define _h_USER /* Avoid including user.h from coredump.h. */
#include
#include
#endif /* _AIX && _I386 */
/* Maybe this could work on some other i386 but I have not tried it
* mtranle@paris - Tue Sep 24 12:49:35 1991
*/
#ifndef COR_MAGIC
# define COR_MAGIC “core“
#endif
/* Need this cast because ptr is really void *. */
#define core_hdr(bfd)
(((bfd->tdata.trad_core_data))->hdr)
#define core_section(bfdn)
(((bfd)->tdata.trad_core_data)->sections[n])
#define core_regsec(bfd)
(((bfd)->tdata.trad_core_data)->reg_section)
#define core_reg2sec(bfd)
(((bfd)->tdata.trad_core_data)->reg2_section)
/* These are stored in the bfd‘s tdata. */
struct trad_core_struct
{
struct corehdr *hdr; /* core file header */
asection *reg_section;
asection *reg2_section;
asection *sections[MAX_CORE_SEGS];
};
static const bfd_target *
aix386_core_file_p (bfd *abfd)
{
int i n;
unsigned char longbuf[4]; /* Raw bytes of various header fields */
bfd_size_type core_size = sizeof (struct corehdr);
bfd_size_type amt;
struct corehdr *core;
struct mergem
{
struct trad_core_struct coredata;
struct corehdr internal_core;
} *mergem;
flagword flags;
amt = sizeof (longbuf);
if (bfd_bread (longbuf amt abfd) != amt)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_wrong_format);
return 0;
}
if (strncmp (longbuf COR_MAGIC 4))
return 0;
if (bfd_seek (abfd (file_ptr) 0 0) != 0)
return 0;
amt = sizeof (struct mergem);
mergem = (struct mergem *) bfd_zalloc (abfd amt);
if (mergem == NULL)
re
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)