2011년4월7일...symbol table(메모리), 디버깅 변수값확인, 마인드스톰 Tribot light sensor
1. 디버그 하기
1)예제3-14
화살표가 생기고 F11(진입)키를 누르면 중괄호 안으로…
변수의 선언은 한 번에 끝나나 sum은 0을 대입해 멈춤.
F10(진행)키를 눌러서 하나의 명령문씩 실행.
학교에선 VS6.0이라 number변수를 초기화하지 않아도 계속 진행이 되었는데 VS2010에선 더 이상 디버깅모드로 진행이 안 되고 ‘계속’버튼을 누르면 실행만 됨. 각 단계 별 메모리의 값을 확인하는 것이 불가능해진다.
2)예제3-15
예제3-14는 디버깅 진행이 불가하니 예제3-15로 symbol table과 디버깅하는 법에 대해 설명한다.
○symbol table
type | name | address |
int | number | 주소 |
long | sum | 주소 |
변수명 number와 sum을 symbol이라고 한다.
VS6.0에선 오른쪽 하단 watch창이고 VS2010에선 왼쪽 하단 조사식1에 변수명 앞에 ‘&’(ampersend)를 붙이면 주소와 데이터를 알 수 있다. 시작에 머물러 있고 변수선언은 하지 않았으므로 값은 알 수 없다. F11키를 눌러 진행해보자.
변수 여러 개를 선언하더라도 한 번에 다 만들어지고 VS6.0에선 메모리에 연속적으로 배치되었으나 VS2010에선 number는 0x0040FD2C번지에 sum은 0x0040FD20에 위치한다. 컴파일러 마다 차이가 있을 수 있다는 것을 증명한다. 컴파일 옵션을 줘서 연속적으로 배치하게 할 수도 있겠으나 지금은 띄어져서 배치되었다고 해서 문제가 되지 않기 때문에 이대로 계속 진행함.
자료형 | ‘&’ + 변수명 | 실제주소 |
int | &number | 0x0040FD2C |
long | &sum | 0x0040FD20 |
symbol table을 만드는 것이 변수선언임. 앞으로 심볼테이블을 그릴 것.
동영상 8개 삽입 후 간단히 설명.. 왜 라인을 벗어나는가?
'내장형하드웨어 > 일일보고서' 카테고리의 다른 글
2011년4월12일..마인드스톰 소리발생, 자유과제(초음파레이더를 장착한 원격제어감시 지능형 자동차) (0) | 2011.04.13 |
---|---|
2011년4월11일..for문, PC정리, VMWare Player로 리눅스 연습, vi editor (0) | 2011.04.11 |
2011년4월6일…while문(반복문), VS6.0에서 디버깅모드, 마인드스톰Tribot touch (0) | 2011.04.07 |
2011년4월5일...if문, switch문, BricxCC (마인드스톰 Tribot) (2) | 2011.04.07 |
2011년4월4일...if문, if-else문, 다중if문, switch문, 마인드스톰 로봇대전 (0) | 2011.04.04 |