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% 삽질 중
3. 디버깅 ¶
- 학교에서는 디버거 없이 디버그 해야할 경우가 없지만...
- 디버거 없이 디버그 해야 할 경우가 있다!
- Assertion, Console Print, Logging, Dump를 사용
- ㄴdump는 프로그램의 유언장 같은 것
- Assertion, Console Print, Logging, 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를 붙여줘야한다)
- 해당 변수 명으로 찾기(Ctrl F)를 할 수가 없음..
- InteliJ나 다른 IDE에 있으면 그 기능 쓰면 된다
- 조건(Condition) : 상황을 정할 수 있음 - 1000개의 객체 배열에서 369번 인덱스에 있는 배열의 객체에서 문제 발생. 기능이 없다면 디버깅 코드를 넣거나 브레이크 포인트를 걸고 배열을 계속 돌기 위해 369번 F10 KEy를 눌러야함
- 기타(ETC)
- 자동, 로컬, 콜스택, 조사식 - 변수를 조사할 수 있다.
- 자동, 로컬, 콜스택, 조사식 - 변수를 조사할 수 있다.
- 디버그 메모리 값
- 종료하면서 막 0xdcdcdcdcd, 0x dddddddddd같은 값이 떠요! - 디버그 모드에서 디버거를 배려해 세팅해 두는 값
- 디버그 메모리 패턴 - ex) 0xDDDDDDDD : Freed Memory, 0xCDCDCDCD : Uninitialized Global, 0xCCCCCCCC : Uninitialized Local
- Delete해주고 메모리를 제대로 NULL로 초기화 해줘야함 ~~ 망할C++ ~~
- 디버그 메모리 패턴 - ex) 0xDDDDDDDD : Freed Memory, 0xCDCDCDCD : Uninitialized Global, 0xCCCCCCCC : Uninitialized Local
- 종료하면서 막 0xdcdcdcdcd, 0x dddddddddd같은 값이 떠요! - 디버그 모드에서 디버거를 배려해 세팅해 두는 값