PVS-Studio 7.41: MISRA C 2023, 향상된 Unreal Engine 통합, 새로운 로깅 시스템, 등등
발행: (2026년 2월 25일 오후 09:18 GMT+9)
6 분 소요
원문: Dev.to
Source: Dev.to
PVS‑Studio 7.41이 출시되었으며, Unreal Engine, MISRA C 2023 지원, IntelliJ IDEA 플러그인 등 다양한 개선 사항을 제공합니다.
MISRA C 2023 지원
- 분석기가 이제 MISRA C 2023 표준의 **86 %**를 다룹니다.
- 향후 릴리스에서는 MISRA C++ 2023 커버리지를 추가로 확대할 예정입니다.
- 자세한 내용은 공식 MISRA C 2023 페이지에서 확인할 수 있습니다.
Unreal Engine 통합
- Unreal Engine 프로젝트에 대한 진단 기능이 강화되었습니다.
- 엔진 컨테이너와 작업할 때 발생하던 V557 규칙 문제를 수정했습니다.
- 가상 함수에서
final지정자를 파싱하던 문제를 해결했습니다. - Unreal Engine과 함께 PVS‑Studio를 사용하는 방법은 문서를 참고하십시오.
C# 분석기 향상
- 오염 분석이 이제 JSON 사용자 주석을 지원하여 비동기 함수, 표준 라이브러리 클래스의 비동기 메서드까지 분석합니다.
- 사용자 주석 메커니즘( PVS‑Studio 7.33에서 도입)은 JSON 파일을 통해 추가 컨텍스트를 제공할 수 있습니다.
- 설정 및 사용 방법에 대한 안내는 문서를 확인하십시오.
새로운 유틸리티: pvs-fp-cleaner
- 배포판에 포함된 새로운 도구가 중복된 false‑alarm 마커(진단을 억제하는 주석)를 자동으로 제거합니다.
- 이를 통해 전체 코드베이스를 수동으로 검토할 필요가 없어집니다.
- 사용 방법은 문서를 참고하십시오.
새로운 로깅 시스템
- 분석 중 발생한 문제에 대한 정보를 수집하는 로깅 시스템을 도입하여 기술 지원을 간소화했습니다.
- 첫 단계에서는 C 및 C++ 크로스‑플랫폼 분석기에 대한 확장 로깅을 추가했습니다.
- 향후 릴리스에서는 MSBuild 기반 C++ 및 C# 분석기로 로깅을 확장할 예정입니다.
- 자세한 내용은 문서에 포함되어 있습니다.
IDE 플러그인 업데이트
- IntelliJ IDEA 플러그인이 이제 분석기 보고서를 CSV로 내보내고 상대 경로를 표시할 수 있습니다.
- 문서를 열 때 발생하던 속도 저하 문제를 수정했습니다.
- 플러그인에 대한 추가 정보는 문서에서 확인할 수 있습니다.
호환성 및 진단 변경 사항
이러한 변경 사항은 이전 분석기 버전과 호환되지 않으며 조정이 필요할 수 있습니다.
- 분석기 출력이 이제 모든 플랫폼에서 일관된 CSV 형식을 따릅니다.
- CSV 변환기로 생성된 보고서가 업데이트되었습니다.
- 진단 규칙 V2609의 메시지가 변경되었습니다; 이전에 억제되었던 경고가 다시 나타날 수 있습니다.
업데이트된 MISRA 관련 진단
- V2667 – 표현식의 값과 그 지속적인 부작용은 모든 허용된 평가 순서와 스레드 인터리빙에 관계없이 동일해야 합니다.
- V2668 – 매크로 매개변수 뒤에 바로
#가 오면 바로 뒤에##가 와서는 안 됩니다. - V2669 – 전처리 지시문처럼 보이는 토큰은 매크로 인수 내부에 나타나서는 안 됩니다.
- V2670 – 스레드 객체, 동기화 객체 및 스레드‑특정 저장소 포인터는 적절한 표준 라이브러리 함수를 통해서만 접근해야 합니다.
- V2671 –
localeconv,getenv,setlocale,strerror가 반환하는 포인터는const‑자격 데이터로 취급해야 합니다. - V2672 – 포인터 간 뺄셈은 동일 배열의 요소를 가리키는 포인터에만 적용되어야 합니다.
기타 진단 업데이트
- V3230 –
typeof(Nullable)와의 비교는 의미가 없으며, nullable 변수에GetType()을 호출해도Nullable을 반환하지 않습니다. - V5339 – OWASP: 잠재적인 RCE 취약점 – 오염된 데이터를 처리하기 위해 사용된 불안전한 GraalVM 컨텍스트.
- V5340 – OWASP: 코드에 보이지 않는 문자가 포함되어 있어 로직을 변경할 수 있습니다; 편집기에서 보이지 않는 문자를 표시하도록 설정하는 것을 고려하십시오.