• 大小: 31.35MB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2023-07-27
  • 语言: 其他
  • 标签: linux  

资源简介

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

评论

共有 条评论