티스토리 툴바


2010/07/20 17:53 Device Driver

예전에 대충 알고 있었던 부분들을 이 책을 통하여 다시금 정리하고 있다.
오늘 읽은 페이지 : 1~107 page

- 유저모드 라이브 디버깅 정리

WinDbg를 이용하여 응용프로그램에 연결하는 방법 3가지
1.
WinDbg에서 응용프로그램 실행하기(Debugger에서 Debugee 실행)
  - File -> Open Executable메뉴를 이용하여 원하는 응용프로그램을 선택한다.
  - 선택 후 열기를 누르면 프로세스 초기화가 끝난 후 main()함수 진입전 한번 멈춘다.
  - 이때 원하는 함수에 BreakPoint를 설정 한 후 g or F5를 눌러 진행하게 된다.

2. 실행중인 응응프로그램에 WinDbg 붙이기(Debugger를 Debugee에 붙이기)
  - 주로 특별한 조건으로 실행된 상태의 응용프로그램을 디버깅해야 할 때나 서비스 프로세스를 디버깅해야 할 때 사용
  - File -> Attach to a Process메뉴를 이용하여 현재 실행중인 프로세스들 중 디버깅을 원하는 프로세스를 선택한다.
  - 다음은 프로세스 초기화 후 멈추게 되는데 여기선 main()함수는 이미 실행되어 지나간 후 라 어떤 부분에서 멈춘지는 알 수 없다.
  ※ WinDbg를 종료하면 실행중이던 응용프로그램도 같이 종료하게 된다. 이것을 막기 위하여 위 Attach 설정창엣 Noninvasive를 선택하면된다. WindowsXP부터는  Noninvasive모드를 사용하지 않아도 qd(Quit and Detach)명령을 이용하여 동일한 기능을 기대할 수 있다.

3. 응용프로그램 실행 중 문제가 발생했을 때 자동으로 WinDbg 실행하기
  - 위 말처럼 응용프로그램의 실행 중에 문제가 발생 시 알아서 자동으로 WinDbg를 실행해준다.
  - 이 기능은 레지스트리에 존재하는 AeDebug키를 이용한다.
    C:\Users\acedon>windbg -I

BreakPoint의 사용
  - bp(BreakPiont)라는 명령어를 사용하여 원하는 곳에 디버깅을 시작할 수 있다.
  - 사용 예) 0:001>bp MyApp!CMyAppDlg::OnBreakPoint
  ※가급적 MyApp처럼 모듈명을 적어주는 것이 명령 실행 시간이 줄어든다.
  - bl(BreakPoint List)라는 명령어는 Breakpoint걸린 목록을 보여준다.
  - 사용 예) 0:001>bl
                    0  e  00401b3e          0001   (0001)   0:**** MyApp!CMyAppDlg::OnBreakPoint
  - 맨 앞 0은 ID로서 0번 브레이크 포인트라는 의미
  - e 는 enable되어 있다는 의미
  - 00401b3e는 breakpoint설정된 주소값
  - 0001은 브레이크 포인트 패스 카운트로서 브레이크 포인터를 1번 만나면 정지해 달라는 의미! 0002였다면 첫 번째 BP가 걸렸을 때는 무시하고 두 번째 브레이크 포인트가 걸렸을 때 정지한다
  - ****은 스레드 지정을 표시함, 스레드 번호 없이 ****가 붙었으면 모든 스레드에 대해서 브레이크 포인트 적용!
  - 나머지 부분은 함수 이름이다.
  - be(Breakponit Enable), bd(Breakpoint Disable)를 이용하여 브레이크 포인트의 사용을 제어 할 수 있다. ex)bd 0  //disable , be 0  //enable
  - bc(Breakpoint Clear)를 이용하여 정의된 브레이크 포인트를 해제한다. ex)bc 0  //0번 브레이크포인트 해제, bc *  //모든 브레이크, bc 3-5, bc 2,7,8
  ** bu명령어는 bp명령어와 동일한 목적으로 사용되나 디버깅을 종료한 후 다시 시작할 때에도 브레이크 포인트가 유지된다는 사실이다.


Call Stack 확인
  - 디버깅 중 브레이크 포인트가 걸렸을 때 대부분 먼저 하는 일은 콜 스택(call stack)확인이다. 어떤 함수들이 어떤 순서로 해당 함수를 호출했는지 확인하는 것이 디버깅의 시작점이 되는 경우가 많기 때문이다. 콜스택을 보는 방법은 두가지가 있다.
  1. 콜 스택 창을 띄워서 보는 방법(File -> View -> Call Stack(ALT+6))
  2. 명령창에서 k명령(Display Stack Backtrace)으로 보는 방법

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by acedon
2009/03/01 20:29

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2009/02/20 15:52 분류없음
오늘 생전 처음 교내에서 봤던 졸업인증시험 토익점수가 나왔다.
사실 이번에는 저번 모의고사때 보다 잘 봤다는 확신은 없었지만, 문법 부분은 조금더 신경을 써서 조금이나마 올랐겠지라는 생각을 가졌었다.

하지만 이런 나의 기대감은 무너지고 말앗다.
사실 뽀록이라도 나와서 600점이라는 컷트라인을 넘을줄 알았는데, 이건 무슨 얼마 나오지 않았던 모의고사보다도 몇십점이 떨어진것이다.

사실 점수를 보고 유쾌하지 못했다.
점수가 오르지 못한 부분에도 그랬었지만, 아마 리스트를 봤더니 성적순이였던것 같았다.
아마도 내 점수가 거의 끝이였던것 같았다.
내가 어찌됐던 거의 끝이라는 사실에 너무나도 얼굴이 화끈거렸다.

아마 이런 경험(거의 끝)을 해보지 못했기에 잠시 정신이 몽롱해져왔다.
허허... 이렇게 나의 토익신고식은 아주 호되게 끝이 나려 한다.

오늘 하루 우리 클래스는 모두들 200~300점의 오른 점수들을 가지고 기뻐하고 있었다.
하지만 난 그 사이에서 기뻐할 수 없었다.
과연 내가 무엇을 제대로 못했기에 남들과 같이 웃을 수 없는 것일까? 라는 푸념만 늘어놓게 된다.

이제 곧 이틀 후에 정규 토익이 있다.

지금의 신선한 충격이 나에게는 독기를 품게하고, 토익이란 녀석과 한판 붙고 싶다는 마음을 만들어 준것임에는 틀림이없다.

이런 내용을 쓰기에 너무나도 부끄러운 일이지만, 나에게 다시금 채찍질을 하기 위해 글을 쓰게 된다...



크리에이티브 커먼즈 라이선스
Creative Commons License
posted by acedon
TAG 충격, 토익
2008/12/17 21:23 IT infomation
DebugLab을 오랜만에 들어가서 기웃거리다가 오래된 글 중에 codeproject에 올라온 기사를 링크해 놓은 것이 있어서 저 역시 링크를 걸어봅니다.

제목에서처럼 .NET에 대한 여러가지 TIPs입니다.


.NET Framework

1. How to get the path for "My Documents" and other system folders?
2. How to get the path to my running EXE?
3. How to determine which operating system is running?
4. How to get a file's name from the complete path string?
5. How to get a file's extension from the complete path string?
6. What is difference beween VB.NET and C#.NET?
7. How to find whether your system has mouse or the number of buttons, whether it has wheel, or whether the mouse buttons are swapped or size of your monitor and many such information?
8. What is the purpose of the [STA Thread] attribute for the Main method of a C# program?
9. How to import CSV data using .NET application?
10. How to find size of logical drives using .NET?
11. How can I get the index of substring in a sentence irrespective of it's case?
12. How to access value of internal property Rawkind in System.Drawing.Printing.PaperSource in .NET 1.1?

OOPS

1. What are Copy Constructors?
2. What are Read-Only Constants?

VS.NET IDE

1. How to manage code snippets in VS.NET IDE?
2. How to display Line Numbers in code editor?
3. How to change the color of the regions?

Controls

Forms

1. How to create a form with resizing borders and no title bar?
2. How to use XP Themes with Windows Forms using the .NET?
3. How to prevent a form from being shown in the taskbar?
4. How to open default E-mail client on your system with all parameters entered in it,like Outlook Express or Eudora, from your .NET windows or Web Application?
5. How to create Pop-Up Alert windows like messengers?
6. What is difference between Anchoring and Docking?

Buttons

1. How to set the default button for a form?
2. How to set the Cancel button for a form?
3. How to trigger a button click event?

Combo Box

1. How to fill a ComboBox with the available fonts?

Text Box

1. How to disable the default ContextMenu of a TextBox?
2. How to enter multiline text in textbox through code?
3. Some useful TextBox Validations
4. How to unselect the text in textbox after it receives focus?

DateTime Picker

1. How to make the DateTimePicker show empty text if no date is selected?

Data Grid

1. How to remove the indeterminate status of checkbox in datagrid?
2. How to group columns in DataGrid?

Panel

1. How to make a Panel or Label semi-transparent on a Windows Form?

WebBrowser Control

1. How to print the contents of Web Browser control?
2. How to assign custom Header and Footer and other page settings while printing the contents of Web Browser control?

ADO.NET

1. How to bind two controls to the same DataTable without having changes in one control also change the other control?

Crystal Reports

1. How to hide the status bar of Crystal Report in Report Viewer?
2. How to generate PDF version of Crystal Report programmatically?
3. How to select a printer while printing through Crystal Report programmatically?

Deployment

1. How to install database while deploying .NET application ?
2. How to install MSDE while deploying .NET application?
3. How to create conditional shortcuts while deploying .NET application?

Add ins

1. How to get a reference to usercontrol in CreateToolWindow2()?

Miscellaneous

1. How to enable the mnemonics (underline) being displayed when an application is launched
2. An easy way to build connection string.
3. How to add a custom or destination folder to SendTo menu?
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by acedon
TAG .NET, Tips
2008/12/11 03:26 Something New
오늘 마지막 시험을 앞두고, 싱숭생숭한 맘을 달래기 위해 친구와 함께 글을 써보았습니다.

친구 作

달밤에 뻘짓 - 김인규 -

시간은 어느덧 새벽 3시를 향해 질주하는데,,
아직 이곳은 학교,,
낯설고 어색한 빈 강의실에
지못난 줄 모르고 까부는 두 녀석들..
공부 핑계삼아.. 외로움을 달랜다..
 
칠흙같은 어둠밤 사이로 고요한 노래한곡조에
목소리에 힘준만큼 어울리는 멋진 글써내라..
머리를 조아리는 모습이.....
천진한 웃음을 띄운다
 
젊음을 불태우는 이놈들은..
10년, 20년 시간이 지나도..
때묻지 않은 지금의 순수함은
고스란히 지워지지 않는 자국처럼 남겠지..

나의 作

초조함속에 평온함이란 - 유형진

이제 나의 시간도 끝나간다.
곧 나의 시간도 끝나간다.

내일이면 이런 초조함도 끝이난다.
현재의 초조함속에 난 평온함을 느낀다.

다가오는 평온함속에 묻혀 초조함을 기다린다.

벌써 3시11분 - 유형진

난 오늘도 너를 향해 달린다.
달리다 보니 벌써 3시11분이다.

아직 시작도 못했는데 벌써 3시11분이다.
오늘도 너를 향해 달리다 멈춘다.

어김없이 내 앞에 멈춰버린 시간,
벌써 3시11분이다.


크리에이티브 커먼즈 라이선스
Creative Commons License
posted by acedon
 <PREV 1 2 3 4 5 ... 6    NEXT>