U E D R , A S I H C RSS

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

Difference between r1.1 and the current

@@ -1,3 +1,31 @@
= 서기 =
[[Tableofcontents]]

이곳에 적어주세요
== 개요 ==
* 발표 계기
 
== 발표 개요 ==
* 다른 컨퍼런스에서 접해보기만 할 지식보다, 실제로 쓸만한 지식을 전파하는데 중점을 둔다.
 
== 디버깅 ==
* 학교에서는 디버거 없이 디버그 해야할 경우가 없지만...
* 디버거 없이 디버그 해야 할 경우가 있다!
* 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++ ~~
 
== 병렬 스택 ==
*
== 디스어셈블리 ==
* 정말 볼 일이 없음 보고 있다면 90% 삽질 중





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.0460 sec