문제

무엇이 동적이드 분석?

그것은 어떻게 다른 코드는 정적 분석 (즉,무엇을 할 수 있 그것은 잡을 수 없는 잡았에서 정체되는)?

내가 들어의 범위를 확인하고 메모리 분석-이들은 무엇입니까?

무엇이 다른 것은 선택을 사용하여 동적 분석도 수행할 수 있습니까?

-Adam

도움이 되었습니까?

해결책

단순히 넣어,정적 분석을 수집한 정보를 기반으로 소스 코드 동적 분석 기반 시스템 실행, 자주 사용하는 기기가 있습니다.

의 장점을 동적 분석

  • 은 감지할 수 있는 종속성을 가능하지 않은을 감지하는 정적 분석입니다.Ex.:동적 종속성을 사용하여 반영,종속성을 주입,다형성이다.
  • 를 수집할 수 있습 시간적 정보입니다.
  • 거래와 실제 입력 데이터입니다.는 동안 정적 분석이 어렵다는 것은 불가능을 알고 어떤 파일이 될 것이다 통과 같이 입력,무엇 웹 요청이 올 것입니다,무엇이 사용자 클릭합니다,등등.

의 단점을 동적 분석

  • 에 부정적인 영향을 미칠 수 있는 응용 프로그램의 성능을.
  • 을 보장할 수 없습의 전체 범위에 소스 코드,그것의 실행은 사용자 상호 작용에 기초하여 또는 자동 테스트합니다.

자원

많은 동적 분석 도구,시장에서는 디버거 가장 악명이 높다.다른 한편으로,그것은 여전히 학문적인 연구 분야이다.거기에 많은 연구자들은 사용하는 방법을 공부하고 역동적 분석의 더 나은 이해를 위한 소프트웨어 시스템입니다.가의 연례 작업장에 전념 종속성을 분석합니다.

다른 팁

기본적으로 악기 코드를 분석하는 소프트웨어로 그것은행(동적)보다는 분석 소프트웨어 실행하지 않고(static).또한 이 많은 프리젠테이션을 비교한 두. Valgrind 한 예입니다 동적 분석 도구에 대한 C.당신은 또한 코드를 사용하여 적용 범위 같은 도구 Cobertura Java 분석합니다.

에서 위키백과 의 정의는 동적인 프로그램 분석:

동적 프로그램 분석 의 분석을 컴퓨터 소프트웨어 수행 실행하는 프로그램 건설에서는 소프트웨어에서 실제 또는 가상 프로세서(분석 수행 를 실행하면 정상적으로 동작하지 않으로 알려진 프로그램 코드는 정적 분석).동적 프로그램 분석 도구가 필요할 수 있으로드 특수 라이브러리 또는 다시 컴파일하의 프로그램 코드입니다.

당신이 물에 대한 좋은 설명의"경계를 확인하고 메모리를 분석하는"문제를 방지할 수 있습니다.

메모리 안전 체크 도구에서 프로그램은 시계에 대한 런타임 오류 메모리 액세스(버퍼를 초과 배열 오류를 아래 첨자,나쁜 포인터,alloc/무료류).링크 포함 에 대한 자세한 설명과 함께 완료 예입니다.이 그래서 대답 두 프로그램이 있는 포인터로 죽은 스 프레임,그리고 어떻게 CheckPointer 감지하고 보고하는 시점의 오류에 소스 코드

는 짧를 들어:C(C++)이 확인되지 않는 액세스를 배열하십시오 액세스 내부에 배열의 범위.혜택:잘 설계된 프로그램을 지불하지 않는 비용 같은 체크인 생산에서는 모드입니다.단점:버 프로그램할 수 있는 터치에 가는 것을 배열,그리고 이 일으킬 수 있는 행동을 이해하기 매우 어려운;따라서 버그가 프로그램 디버깅하기 어려운.

무엇을 동적 계측이 같은 도구는 메모리의 안전 조사원은 연결하여 메타데이터 모든 포인터(예를 들어,형식의 것을 포인터 포인트"",그리고 그것은 배열,배열의 범위),다음을 확인에 runtime,어떠한 액세스를 통해 포인터 배열,는지 여부를 배열이 바운드되어 있습니다.도구는 수정 원본 프로그램으로 수집하는 메타데이터가 생성(예를 들어,항목에 범위에 있는 배열은 선언이나의 결과로 malloc 작업,etc.) 하고 수정하는 프로그램에서 모든 배열에 대한 참조(서면으로 모두 x[y]는 곳 중 하나 x y 는 포인터 배열의 값은 일부 형식의 필수적인 유형에 대한 마찬가지로*(x+y)!) 을 확인하세요.지금 프로그램을 실행하는 경우,수행하는 범위를 벗어나 액세스하고,확인을 잡는 오류하고 그것을 보고 첫 번째 장소는 그것이 될 수 있을 검출합니다.[당신이 그것에 대하여 생각하는 경우,당신은 알 계측을 위한 메타 데이터 수집 및 확인 아주 영리를 처리하기 위해,모든 변형을 경우에는 같은 언어는 C 할 수 있습니다.그 사실을 만들기 위해 열심히 완전하게 작업).

좋은 소식은 이제 이러한 액세스를 보고 일찍 그것을 더 쉽게 발견할 수 있습니다 문제를 해결합니다.이러한 도구를 예정하지 않는 생산 사용하여;중 하나를 사용하는 동안 개발 및 테스트는 다음 사항을 확인하기 위해 부 오류가 있습니다.이 없는 경우에는 오류를 발견한 다음 하나는 정상적인 컴파일과 실행 프로그램 없이 검사한다.

이것은 매우 좋은 예를 들어의 동적 분석 도구시험에서 발생합니다.

경계 검사

이 런타임 검사의 배열에 액세스합니다.에 반하는 C 의유 접근 방식을 메모리에 액세스하고 포인터 연산,다른 언어는 다음과 같 Java 또는 C#실제로는지 여부를 확인하거나 주어지지 배열의 요소 중 하나 액세스하려고 하는지.

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