ARM에서 어셈블러를 실행하기 위해 RHEL에 QEMU를 설치했습니다. QEMU와 ARM을 성공적으로 설치했습니다. 그러나 디버깅을 위해 GDB 사용을 고려하고 있습니다. 설치하고 싶어요GDB 다중 아키텍처RHEL에서. GDB가 설치되어 있고 명령을 실행할 때광둥개발은행GDB 쉘을 성공적으로 얻었습니다. 그러나 나는 사용해야한다GDB 다중 아키텍처이 명령을 실행할 수 없습니다. 어셈블러를 성공적으로 실행하려면 다음 명령을 실행해야 합니다.
qemu-system-arm -S -s -M versatilepb -daemonize -m 128M -d in_asm,cpu,exec -kernel hello_world.bin ; gdb-multiarch --batch --command=hello_world.gdb
위 명령에서 gdb-multiarch 명령을 찾을 수 없다는 오류가 발생합니다. 저는 이 환경이 처음인데 도움을 주시면 정말 감사하겠습니다.
답변1
시간이 좀 지났지만 방금 이 문제에 부딪혀 해결책을 찾았습니다. 첫째, 위에서 언급했듯이 gdb-multiarch 패키지는 현재 Debian 배포판에서 사용할 수 있지만 아직 RHEL에서는 사용할 수 없습니다(현재 버전은 RHEL 9입니다). 저는 RHEL 7을 사용하고 있으며 아래 솔루션은 RHEL 7용이지만 유사한 패키지를 설치하면 다른 RHEL 버전에 대한 솔루션을 찾을 수 있습니다.
- 설치하다개발 도구 세트-11(yum을 사용하여 devtoolset-11을 찾을 수 없는 경우 여기에서 직접 다운로드할 수 있습니다.협회)
- 이전에 이전 gdb 패키지를 설치한 경우 devtoolset-11 gdb 버전을 활성화해야 합니다. 이렇게 하려면 "
scl enable devtoolset-11 bash
" 명령을 실행하세요. - ""를 사용하여 gdb 버전을 확인하세요
gdb -v
. 결과는 다음과 같습니다.
"GNU gdb(GDB) 레드햇 엔터프라이즈 리눅스 10.2-6.el7
저작권 (C) 2021 자유 소프트웨어 재단, Inc."
gdb
" " 명령을 사용하여 gdb 세션을 시작하십시오.- 원격 대상에 연결하려면 "
target remote localhost:1234
" 명령을 실행하십시오. - 오류가 발생하지 않으면 디버깅할 준비가 된 것입니다.