Solaris 10 11/06 릴리스 노트

디버거 실행 중 발생하는 문제

다음 문제는 커널 디버거와 관련됩니다.

SPARC: 64비트 객체를 처리하는 동안 발생하는 dbx 디버거 문제(6347707)

dbx 디버거가 특정 64비트 실행 파일 및 라이브러리를 처리하는 중 메모리 액세스 오류와 함께 종료합니다. 하지만 이 문제가 해당 64비트 객체를 정상적으로 사용하는 데 영향을 주지는 않습니다. 다음 예제와 유사한 오류 메시지가 표시됩니다.


dbx: internal error: signal SIGBUS (invalid address alignment)

해결 방법: mdb 디버거 또는 Solaris 동적 추적 기능을 대신 사용합니다. 이러한 방법을 사용하면 64비트 객체를 사용하는 프로세스를 진단할 수 있습니다.

마스터 CPU가 변경될 때 시스템 루프가 발생할 수 있음(4405263)

라이브 시스템을 디버깅하기 위해 Solaris 커널 디버거를 실행 중인 시스템에서는 불완전한 오류 메시지와 함께 루프가 발생할 수 있습니다. OpenBoot PROM의 마스터 CPU가 변경될 때 이 루프가 발생합니다. 시스템을 재설정하면 시스템이 복원되어 다시 작동합니다. 그러나 원래 실패에 대한 추적이 없어지므로치명적 재설정에 대해 진단을 수행할 수 없습니다.

해결 방법: 시스템이 PROM 수준일 때 OpenBoot의 ok 프롬프트가 표시됩니다. 여러 CPU가 있는 시스템에서는 ok 프롬프트 앞에 중괄호로 묶인 숫자가 표시됩니다. 이 숫자는 시스템에서 활성 상태인 CPU를 나타냅니다. PROM 수준에서 디버그 세션을 실행하려면 다음 단계를 수행합니다.

  1. 다음 명령을 입력하여 pil을 f로 올립니다.


    {0} ok h# 0f pil!
    
  2. switch-cpu 명령을 사용하여 현재 활성 상태인 CPU에서 다른 CPU로 선택적 전환합니다. 예를 들어, CPU #0에서 CPU #1로 전환하려면 다음 명령을 입력합니다.


    (0) ok 1 switch-cpu
    

    이제 ok 프롬프트 앞에는 전환된 CPU 번호가 표시됩니다.


    {1} ok
  3. 디버거를 실행합니다.

  4. 디버거 세션이 끝나면 reset-all 명령을 실행하여 시스템을 정상적인 상태로 되돌립니다.


주 –

가장 최신 버전의 OpenBoot PROM으로 시스템을 업그레이드해야 합니다.