GDB가 왜 "파일 아키텍처가 인식되지 않음"이라고 말합니까?

StackOverflow https://stackoverflow.com/questions/963689

  •  12-09-2019
  •  | 
  •  

문제

AIX 5.3에서 실행되는 AIX 공유 LIB에서 GDB를 사용하고 있습니까? 이 파일에 대해 GDB를 실행하려고 할 때 ""파일의 아키텍처 "라는 오류 메시지가 표시됩니다.

왜 내가이 메시지를받는 지 아는 사람이 있습니까?

GDB는 XLC가 컴파일 한 다른 실행 파일에서 정상적으로 실행됩니다.

컴파일하는 동안 사용했을 수있는 옵션이 있습니까? GDB.Some 프로세서 별 옵션과 호환되지 않습니다.

AIX의 공유 LIB W XLC v9.0을 컴파일했습니다.

감사.

도움이 되었습니까?

해결책

void
set_gdbarch_from_file (bfd *abfd)
{
  struct gdbarch_info info;
  struct gdbarch *gdbarch;

  gdbarch_info_init (&info);
  info.abfd = abfd;
  info.target_desc = target_current_description ();
  gdbarch = gdbarch_find_by_info (info);

  if (gdbarch == NULL)
    error (_("Architecture of file not recognized."));
  deprecated_current_gdbarch_select_hack (gdbarch);
}

이것은 실제 GDB 코드 (GDB/Arch-utils.C : 530-544)입니다.

GDBarch 포인터에 전달 된 정보는 유효하지 않은 것 같습니다. 이것은 gdb_find_by_info가 null 포인터를 반환하여 발생하며 find_arch_by_info (gdb/gdbarch.c : 3656)에 의해 발생합니다.

기본적으로 말하는 것을 의미합니다. GDB는 파일의 아키텍처를 식별 할 수 없습니다. 이것은 흔한 최근 GDB 버전에서도 XLC의 문제.

XLC와 GDB는 내가 기억하고 이해하는 한, 호환성 용어 (AIX 지원은 최소화됨)와 관련하여 그리 좋지 않습니다. GNU C 컴파일러 . 당신은 GDB 소스를 볼 수 있습니다 매우 특정 정보 (내가 정말로 줄 수없는).

여기 GCC-AIX 세부 사항에 대한 링크입니다.

다른 팁

공유 라이브러리에서 GDB를 실행하지 않으면 실행 파일.

실행 파일이 공유 라이브러리를로드하면 GDB는 이에 대해 알게됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top