U E D R , A S I H C RSS

데블스캠프2017/VS디버거잘쓰는법



1. 개요

  • 발표 계기

2. 발표 개요

  • 다른 컨퍼런스에서 접해보기만 할 지식보다, 실제로 쓸만한 지식을 전파하는데 중점을 둔다.

3. 디버깅

  • 학교에서는 디버거 없이 디버그 해야할 경우가 없지만...
  • 디버거 없이 디버그 해야 할 경우가 있다!
    • Assertion, Console Print, Logging, Dump를 사용
    • ㄴdump는 프로그램의 유언장 같은 것
  • Break Point
    • 조건(Condition) : 상황을 정할 수 있음 - 1000개의 객체 배열에서 369번 인덱스에 있는 배열의 객체에서 문제 발생. 기능이 없다면 디버깅 코드를 넣거나 브레이크 포인트를 걸고 배열을 계속 돌기 위해 369번 F10 KEy를 눌러야함
    • 액션(Action) : 콘솔이 없는 프로그램(GUI)을 위해, VS 출력창에 문장을 띄워주는 것
    • 데이터 브레이크 포인트 : int a = 5;, 변수 a를 활용하여 엄청나게 많은 코드가 실행됨. cout << a; a = 10 ???????????
      • 해당 변수 명으로 찾기(Ctrl F)를 할 수가 없음..
      • 프로그램이 실행 된 상태 - 어딘가에 브레이크 포인트를 건다. Debug - Break point 메뉴에 있음! Conditional expression으로 조건을 저장하면 된다.(&a와 같이 reference를 붙여줘야한다)
    • InteliJ나 다른 IDE에 있으면 그 기능 쓰면 된다
  • 기타(ETC)
    • 자동, 로컬, 콜스택, 조사식 - 변수를 조사할 수 있다.
  • 디버그 메모리 값
    • 종료하면서 막 0xdcdcdcdcd, 0x dddddddddd같은 값이 떠요! - 디버그 모드에서 디버거를 배려해 세팅해 두는 값
      • 디버그 메모리 패턴 - ex) 0xDDDDDDDD : Freed Memory, 0xCDCDCDCD : Uninitialized Global, 0xCCCCCCCC : Uninitialized Local
      • Delete해주고 메모리를 제대로 NULL로 초기화 해줘야함 ~~ 망할C++ ~~

4. 병렬 스택


5. 디스어셈블리

  • 정말 볼 일이 없음 보고 있다면 90% 삽질 중
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:19
Processing time 0.0324 sec