LabVIEW 충돌 문제 해결

업데이트 됨 Apr 15, 2024

해당 제품

소프트웨어

  • LabVIEW

문의사항

  • LabVIEW 개발 환경을 탐색하는 동안 LabVIEW가 충돌하고 다음 에러를 표시했습니다. 
LabVIEW 20xx encountered a problem and needs to close. You can help us diagnose and fix this problem by sending this report directly to National Instruments.
 
  • 내가 작성한 VI를 닫을 때 LabVIEW가 에러 없이 충돌합니다.
  • LabVIEW 충돌 원인을 어떻게 찾을 수 있습니까?

해결책

LabVIEW 내부 에러 및 충돌에 대한 초기 문제 해결 단계:

  1. LabVIEW Crash Reporter 대화 상자를 통해 NI에 충돌 보고서를 보냅니다.
    • NI가 충돌을 진단하는 데 도움이 되는 관련 정보를 추가하십시오.
  2. 충돌을 일관되게 재현 할 수 있는지 확인합니다.
    • 이렇게 하면 충돌 원인을 더 쉽게 진단할 수 있습니다.
    • 충돌을 재현할 수 있다면 KnowledgeBaseNI Community 에서 유사한 충돌을 검색해보십시오. 16진수 코드와 충돌이 발생할 때 수행 중이었던 작업을 포함하십시오.
  3. 최신 LabVIEW 패치 를 설치하십시오.
  4. LabVIEW 버전에 대한 LabVIEW 알려진 문제목록을 확인하십시오.

추가 문제 해결 단계:

  • 만약 LabVIEW 개발 환경을 시작하려고 할 때 충돌이 발생한다면 후속 단계를 시도하기 전에 영향을 받는 시스템을 완전히 종료하고 다시 시작하십시오.
  • Windows와 같은 비결정적(non-deterministic) 환경에서 Timed 구조를 사용하는 경우 일반(non-timed) 구조로 대체하십시오.
  • 경고의 원인을 좁히십시오.
    • 충돌의 가장 작은 재현 사례를 만드는 데 사용되는 코드와 하드웨어의 양을 줄입니다.
      • 충돌과 관련이 없는 부분을 제거 할 수 있다면 이 특정 충돌의 근본 원인을 찾을 가능성이 더 큽니다. 이를 위해 다음 문제 해결 단계를 참조하십시오.
        • 실행 파일에서 충돌이 발생하면 LabVIEW 개발 환경에서 VI를 실행할 때 동일한 동작이 발생하는지 확인하십시오. 이렇게하면 런타임 엔진의 문제인지 알 수 있습니다.
        • 다이어그램 비활성화 구조를 사용하여 코드의 일부를 비활성화하십시오. 이렇게 하면 코드에서 충돌이 발생하는 위치를 좁힐 수 있습니다.
        • 모든 하드웨어를 제거하십시오. 여전히 충돌이 표시되면 소프트웨어 문제 해결을 계속할 수 있습니다. 하드웨어를 제거하여 충돌이 해결되면 원인을 하드웨어로 좁힐 수 있습니다. 다른 종류의 하드웨어를 사용하여 충돌이 하드웨어 유형에 특정한 것인지 확인하십시오.
        • 다른 컴퓨터에서도 동일한 동작이 나타나는지 확인하십시오. 충돌은 컴퓨터 환경과 관련이 있을 수 있습니다.
  • 메모리 누수를 확인하기 위해 메모리를 모니터링합니다.
    • 하드웨어를 사용하는 경우 모든 메모리 참조를 닫고 있는지 확인합니다. 참조를 잘못 사용하는 경우 메모리 누수가 발생할 수 있습니다.
  • WinDbg를 사용하여 충돌 문제를 해결합니다.
    • 충돌이 재현 가능한 경우, 이 도구를 LabVIEW 프로세스에 연결하고 충돌이 다시 발생하도록 합니다. 이 도구를 사용하면 충돌 원인을 더 자세히 살펴볼 수 있습니다.
  • 모든 에러 클러스터가 연결되어 있고 모니터링 되고 있는지 확인하십시오. 알지 못하는 에러가 이전에 발생했을 수 있습니다.
    • 에러 번호는 무엇이 잘못되었는지 지정하기 위한 것이며 에러 설명 대화 상자 (Help>>Explain Error..)에서 검색하여 에러에 대한 설명을 찾을 수 있습니다.
  • .NET 프레임 워크 또는 DLL을 사용하는 경우 이를 제거하여 충돌이 계속 발생하는지 확인하십시오. DLL은 충돌이 발생하는 곳일 수 있습니다 .
  • 하나의 VI에서만 충돌이 일관되게 발생하는 경우 블록 다이어그램의 전체 내용을 새 VI로 복사해 보십시오.
    • 때때로 이것은 충돌을 일으킬 수 있는 손상을 제거할 수 있습니다.
  • VI를 매스 컴파일합니다.
    • 이전 버전에서 LabVIEW를 업그레이드한 경우 업데이트 되지 않은 이전 VI가 있을 수 있습니다.
  • 코드의 "Insane Object" 또는 "fsane.cpp" 에러로 인해 충돌이 발생할 수도 있습니다.
  • 실행 파일에서 충돌이 발생하는 경우 필요한 모든 드라이버가 배포 시스템에 설치되어 있는지 확인하십시오.
  • 자체 로깅을 구현하여 충돌이 발생할 수 있는 위치에 대한 자세한 정보를 얻으십시오.
  • 방화벽을 끄고 프로젝트를 실행하십시오.
    • SentinelOne과 같은 일부 바이러스 백신 소프트웨어에는 LabVIEW 충돌을 일으키는 DLL이 포함되어 있습니다.
  • 블록 다이어그램 또는 프런트 패널의 최대 크기를 초과하지 않는지 확인하십시오.
  • LabVIEW Desktop Execution Trace Toolkit을 사용하여 동적 코드 분석을 사용하여 고급 디버깅을 수행하십시오.

추가 문제 해결 단계 :

충돌의 근본 원인을 확인할 수 있는 경우 다음 단계는 해결 방법을 찾거나 가능한 가장 작은 규모로 충돌을 재현하는 것입니다. LabVIEW 버그 인 경우 NI 기술 지원에 연락 하여 수정 조치 요청(CAR)을 제출할 수 있습니다. 충돌을 보여주는 예제 VI와 위 단계에서 얻은 보충 파일을 첨부하십시오. 이렇게 하면 기술 지원 엔지니어가 문제를 재현하고 가장 잘 이해하는 데 도움이 됩니다.

문제가 소프트웨어 또는 운영 체제의 손상과 관련이 있을 수 있습니다. 위에서 언급 한 문제 해결 단계를 시도했지만 이 문제를 해결할 수 없는 경우 컴퓨터 재 이미징을 고려해야 할 수 있습니다.

추가 정보

LabVIEW 내부 에러는 무엇입니까?

LabVIEW 내부 에러는 LabVIEW 내에서 잘못되었거나 예상치 못한 문제가 발생했음을 나타냅니다. 심각도 수준에 따라 즉시 또는 나중에 LabVIEW를 종료하거나 다시 시작할 때 에러 대화 상자가 나타날 수 있습니다. 세 가지 심각도 수준은 DAbort , DWarnDWarnInternal 입니다.
  • DAbort 는 복구 할 수 없으며 LabVIEW는 즉시 종료됩니다.
    • 이렇게 하면 추가 손상을 방지할 수 있으며 위와 유사한 LabVIEW 충돌 보고서 대화 상자가 나타납니다.
  • DWarnDWarnInternal 은 복구 가능한 에러이며 LabVIEW를 종료하지 않지만 여전히 예상치 못한 에러 이므로 보고해야 합니다.
    • LabVIEW 설정에 따라 LabVIEW를 종료 할 때 내부 경고 보고서 대화 상자가 나타날 수 있습니다.