<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>이슬술사 작업실</title>
	<link>http://jbjempire.egloos.com</link>
	<description>이슬술사 작업실</description>
	<language>ko</language>
	<pubDate>Sun, 07 Jun 2009 15:23:40 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>이슬술사 작업실</title>
		<url>http://pds1.egloos.com/logo/1/200607/19/52/d0019252.jpg</url>
		<link>http://jbjempire.egloos.com</link>
		<width>80</width>
		<height>80</height>
		<description>이슬술사 작업실</description>
	</image>
  	<item>
		<title><![CDATA[ Full Set in my room ]]> </title>
		<link>http://jbjempire.egloos.com/2340054</link>
		<guid>http://jbjempire.egloos.com/2340054</guid>
		<description>
			<![CDATA[ 
  <p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds15.egloos.com/pds/200906/08/52/d0019252_4a2bdb6b55363.jpg" width="500" height="548.270893372" onclick="Control.Modal.openDialog(this, event, 'http://pds15.egloos.com/pds/200906/08/52/d0019252_4a2bdb6b55363.jpg');" /></div><br>작년에 데탑을 살 때부터 계획이 있었지만...<br>지금에서야 5.1 스피커와 함께 세트 구성을 했다.<br>스탠드형 후방 스피커는 영화 볼때에는 뒤쪽으로 옮겨야 재기능을 발휘하겠지 ^^<br>바쁜 회사 생활에 얼마나 많은 여유를 가질지는 미지수지만<br>밤늦게 퇴근해도 새로 이사온 집에 들어가는 건 기쁨이다... ^____^</p>			 ]]> 
		</description>
		<category>◇ Who is 이슬술사...?</category>

		<comments>http://jbjempire.egloos.com/2340054#comments</comments>
		<pubDate>Sun, 07 Jun 2009 15:23:40 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 새로운 데스크탑... ]]> </title>
		<link>http://jbjempire.egloos.com/1954864</link>
		<guid>http://jbjempire.egloos.com/1954864</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200806/29/52/d0019252_4867358d43ce6.jpg" width="480" height="394" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200806/29/52/d0019252_4867358d43ce6.jpg');" /><br><br>노트북의 빈자리를 채워줄 새 데스크탑<br>22인치 모니터 구입으로 노트북보다 데스크탑이 효율적일 것이라 장만했다.<br>폭 95mm의 슬림 컴퓨터지만 CPU는 AMD 쿼드코어 Q9550으로 날라다닌다는거~			 ]]> 
		</description>
		<category>◇ Who is 이슬술사...?</category>

		<comments>http://jbjempire.egloos.com/1954864#comments</comments>
		<pubDate>Sun, 29 Jun 2008 07:13:11 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 내 노트북 마지막 모습... ]]> </title>
		<link>http://jbjempire.egloos.com/1954856</link>
		<guid>http://jbjempire.egloos.com/1954856</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds7.egloos.com/pds/200806/29/52/d0019252_4867350b74705.jpg" width="480" height="426" onclick="Control.Modal.openDialog(this, event, 'http://pds7.egloos.com/pds/200806/29/52/d0019252_4867350b74705.jpg');" /><br><br>1년간 정말 동거동락 하면서 잘 써온 LB2200-S1<br>좋은 사람에게 보내졌으니, 꾸준히 잘 사용되길...			 ]]> 
		</description>

		<comments>http://jbjempire.egloos.com/1954856#comments</comments>
		<pubDate>Sun, 29 Jun 2008 07:10:58 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버거 기능의 구현(8) : 트레이스 포인트 ]]> </title>
		<link>http://jbjempire.egloos.com/1420018</link>
		<guid>http://jbjempire.egloos.com/1420018</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds3.egloos.com/pds/200708/21/52/d0019252_46c9bf0d02bfe.png" width="378" height="284" onclick="Control.Modal.openDialog(this, event, 'http://pds3.egloos.com/pds/200708/21/52/d0019252_46c9bf0d02bfe.png');" /><br>1.&nbsp;Trace Point&nbsp;: Break Point와 달리 브레이크 지점에서 멈추지 않고 디버깅 정보를 출력창에 표시<br>&nbsp;&nbsp;&nbsp;&nbsp;- Microsoft Visual Studio .net 2005 버전에서만 사용가능<br><br>2. 특수 키워드로 원하는 정보만 출력 가능<br>&nbsp;&nbsp;&nbsp;&nbsp;- $ADDRESS : 현재 명령 주소. <span style="COLOR: #999999">; GetThreadContex( ... ), context.Eip--&nbsp;출력<br></span>&nbsp;&nbsp;&nbsp;&nbsp;- $CALLER : 이전 호출 함수 이름. <span style="COLOR: #999999">; 호출 스택에서 이전 호출 함수 이름만&nbsp;출력<br></span>&nbsp;&nbsp;&nbsp;&nbsp;- $CALLSTACK :&nbsp;호출 스택. <span style="COLOR: #999999">; 호출 스택 전체&nbsp;내용을 출력<br></span>&nbsp;&nbsp;&nbsp;&nbsp;- $FUNCTION : 현재 호출 함수 이름. <span style="COLOR: #999999">; 호출 스택에서 현재 호출 함수 이름만 출력<br></span>&nbsp;&nbsp;&nbsp;&nbsp;- $PID : 프로세스&nbsp;ID.<br>&nbsp;&nbsp;&nbsp;&nbsp;- $PNAME :&nbsp;프로세스&nbsp;이름. <span style="COLOR: #999999">; 현재 실행파일 이름 출력<br></span>&nbsp;&nbsp;&nbsp;&nbsp;- $TID : 스레드 ID.<br>&nbsp;&nbsp;&nbsp;&nbsp;- $TNAME : 스레드 이름. <span style="COLOR: #999999">; 심볼 테이블에서 해당 주소의 심볼 이름 출력<br><br></span><span style="COLOR: #000000">3. 사용예<br>&nbsp;&nbsp;&nbsp;&nbsp;"Function : <span style="COLOR: #ff6600">$FUNCTION</span>, Process : <span style="COLOR: #ff6600">$PID<span style="COLOR: #000000">, </span>$PNAME</span>"<br>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; "Function : <span style="COLOR: #ff0000">OnCreate()</span>, Process : <span style="COLOR: #ff0000">7c4<span style="COLOR: #000000">, </span>TestFunc.exe</span>"</span>			 ]]> 
		</description>
		<category>→ System Program</category>

		<comments>http://jbjempire.egloos.com/1420018#comments</comments>
		<pubDate>Mon, 20 Aug 2007 16:42:16 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버거 기능의 구현(7) : 지역변수/매개변수 ]]> </title>
		<link>http://jbjempire.egloos.com/1419927</link>
		<guid>http://jbjempire.egloos.com/1419927</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds5.egloos.com/pds/200708/20/52/d0019252_46c9997171b29.png" width="379" height="283" onclick="Control.Modal.openDialog(this, event, 'http://pds5.egloos.com/pds/200708/20/52/d0019252_46c9997171b29.png');" /><br>1. 지역변수 : 함수 내부에서 만들어지는 변수. 함수 호출과 동시에 스택 공간에 메모리가 확보된다.<br><br>2. 매개변수 : 지역변수에 속하며, 함수가 호출되었을 때 생성되었다가 사라지기때문에 자동(Auto) 변수라고도 한다.<br><br>3. 스택 세그먼트 : 프로그램이 실행되는데 필요한 메모리 영역(함수 전용 메모리). 함수가 호출될 때 필요한 지역변수와 매개변수의 메모리는 스택에 자리잡는다. 그러므로 모든 지역변수는 스택에 위치한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;* 스택 프레임은 심볼 테이블에 해당하는 메모리, 복귀주소, 이전 EBP로 구성되어 있다.<br><br>4. 변수 값 위치<br>&nbsp;&nbsp;&nbsp;&nbsp;- EBP :&nbsp;스택 프레임의 기준점 (ex. 0x0012FE08 -&gt; 0x0012FF68 ,&nbsp;<span style="COLOR: #ff0000">이전 EBP</span>)<br>&nbsp;&nbsp;&nbsp;&nbsp;- EBP + 4 :&nbsp;복귀 주소 (ex. 0x0012FE0C -&gt; 0x00401441 , <span style="COLOR: #ff0000">복귀 주소</span>)<br>&nbsp;&nbsp;&nbsp;&nbsp;- EBP + 4 + 4n : 매개변수 메모리 (ex. 0x0012FE10 -&gt; <span style="COLOR: #ff0000">n번째 매개변수 값</span>)<br>&nbsp;&nbsp;&nbsp;&nbsp;- EBP - 4n : 지역변수 메모리 (ex. 0x0012FE04 -&gt; <span style="COLOR: #ff0000">n번째 지역변수 값</span>)<br><br>5. 스택 따라가며 변수값 찾기<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #3333ff">BOOL</span> <span style="COLOR: #cc0000">SymEnumSymbols</span>( <span style="COLOR: #3333ff">HANDLE</span> hProcess,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #3333ff">ULONG64</span> BaseOfDll,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #3333ff">PCTSTR</span> Mask,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">PSYM_ENUMERATESYMBOLS_CALLBACK</span> EnumSymbolsCallback,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">PVOID</span> UserContext );<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #3333ff">BOOL</span> <span style="COLOR: #cc33cc">CALLBACK</span> <span style="COLOR: #cc0000">SymEnumSymbolsProc</span>( <span style="COLOR: #3333ff">PSYMBOL_INFO</span> pSymInfo,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">ULONG</span> SymbolSize,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">PVOID</span> UserContext );<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #3333ff">BOOL</span> <span style="COLOR: #cc33cc">CALLBACK</span> (<span style="COLOR: #3333ff">PENUM_LOCAL_VARS_CALLBACK</span>) ( <span style="COLOR: #3333ff">DWORD</span> dwAddr,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;<span style="COLOR: #3333ff">LPCTSTR</span> szType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">LPCTSTR</span> szName,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">LPCTSTR</span> szValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">int</span> iIndexLevel,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">PVOID</span> pUserCtx );			 ]]> 
		</description>
		<category>→ System Program</category>

		<comments>http://jbjempire.egloos.com/1419927#comments</comments>
		<pubDate>Mon, 20 Aug 2007 16:11:00 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버거 기능의 구현(6) : 호출 스택 ]]> </title>
		<link>http://jbjempire.egloos.com/1419447</link>
		<guid>http://jbjempire.egloos.com/1419447</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds3.egloos.com/pds/200708/20/52/d0019252_46c9966572075.png" width="379" height="283" onclick="Control.Modal.openDialog(this, event, 'http://pds3.egloos.com/pds/200708/20/52/d0019252_46c9966572075.png');" /><br>1. 호출 스택?<br>&nbsp;&nbsp;&nbsp;&nbsp;- 함수가 호출되기까지의 모든 호출원을 출력<br>&nbsp;&nbsp;&nbsp;&nbsp;- 특정 지점에서 프로그램이 이상 동작을 해서 멈추었을 때 이 함수를 누가 호출했는지 알고 싶을 때 확인<br><br>2. 호출 스택의 가장 하위에 운영체제가 main() 함수를 호출한다.<br><br>3. 호출 스택 구현 과정<br>&nbsp;&nbsp;&nbsp;&nbsp;ex)&nbsp;<span style="COLOR: #cc0000">0x004010DA</span> <span style="COLOR: #cc33cc">SendMouse.exe</span>!<span style="COLOR: #ff6600">CMainFrame::OnCreate</span>(...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #ff0000"><span style="COLOR: #cc0000">①&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #cc33cc">②&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <span style="COLOR: #ff6600">③</span><br></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff">while</span>( <span style="COLOR: #cc0000">StackWalk</span>( ... ) )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #009900">//&nbsp;스택을 따라가며 모듈의 오프셋을 구함<br></span>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #cc0000">SymGetModuleBase</span>( ... );&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #009900">// 모듈의 베이스 주소를&nbsp;얻음 (<span style="COLOR: #cc0000">①</span>)</span><span style="COLOR: #ff0000"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #cc0000">GetModuleFileName</span>( ... );&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #009900">// 모듈을&nbsp;포함하고 있는 파일의 이름을 얻음 (<span style="COLOR: #cc33cc">②</span>)<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #cc0000">SymGetSymFromAddr</span>( ... ); <span style="COLOR: #009900">// 스텍 오프셋으로부터 모듈의 이름을 얻음 (<span style="COLOR: #ff6600">③</span>)<br></span>&nbsp;&nbsp;&nbsp;&nbsp;}			 ]]> 
		</description>
		<category>→ System Program</category>

		<comments>http://jbjempire.egloos.com/1419447#comments</comments>
		<pubDate>Mon, 20 Aug 2007 13:36:16 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버거 기능의 구현(5) : 레지스터 뷰 ]]> </title>
		<link>http://jbjempire.egloos.com/1417404</link>
		<guid>http://jbjempire.egloos.com/1417404</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds4.egloos.com/pds/200708/19/52/d0019252_46c8246a169b6.png" width="379" height="283" onclick="Control.Modal.openDialog(this, event, 'http://pds4.egloos.com/pds/200708/19/52/d0019252_46c8246a169b6.png');" /><br>1. 레지스터 뷰 : 현재 레지스터의 값을 읽어 출력한다.<br><br>2. 컨텍스트(context) : 스위티로 인해 실행 중단된 이후 스케줄러에 의해 다시 시작될 때 필요한 프로세스와 그 환경에 대한 정보의 집합. 정적변수와 동적변수를 사용하는 실행코드, 스택, 레지스터, 프로그램 카운터 등이 포함<br><br>3. 레지스터의 종류<br>&nbsp;&nbsp;&nbsp;&nbsp;- Eax, Ebx, Ecx, Edx<br>&nbsp;&nbsp;&nbsp;&nbsp;- Esi, Edi<br>&nbsp;&nbsp;&nbsp;&nbsp;- Eip, Esp, Ebp<br>&nbsp;&nbsp;&nbsp;&nbsp;- Eflags&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4byte register<br>&nbsp;&nbsp;&nbsp;&nbsp;- CS, SS, DS, ES, FS, GS&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;2byte register<br>&nbsp;&nbsp;&nbsp;&nbsp;* EIP(Instruction Pointer) : 코드 세그먼트 내에서 다음에 실행될 명령어를 지시.<br>&nbsp;&nbsp;&nbsp;&nbsp;* EBP(Base Pointer) : 스택 프레임의 기준점을 의미.<br><br>4.&nbsp;컨텍스트 값 읽기 &amp;&nbsp;쓰기<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #3333ff">BOOL </span><span style="COLOR: #cc0000">GetThreadContext</span>( <span style="COLOR: #3333ff">HANDLE</span> hThread,&nbsp;<span style="COLOR: #3333ff">LPCONTEXT</span> lpContext );<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #3333ff">BOOL</span> <span style="COLOR: #cc0000">SetThreadContext</span>( <span style="COLOR: #3333ff">HANDLE</span> hThread,&nbsp;<span style="COLOR: #3333ff">CONST</span> <span style="COLOR: #3333ff">CONTEXT</span>* lpContext );			 ]]> 
		</description>
		<category>→ System Program</category>

		<comments>http://jbjempire.egloos.com/1417404#comments</comments>
		<pubDate>Sun, 19 Aug 2007 15:48:05 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버거 기능의 구현(4) : 메모리 뷰 ]]> </title>
		<link>http://jbjempire.egloos.com/1416679</link>
		<guid>http://jbjempire.egloos.com/1416679</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds3.egloos.com/pds/200708/19/52/d0019252_46c821c25001c.png" width="379" height="284" onclick="Control.Modal.openDialog(this, event, 'http://pds3.egloos.com/pds/200708/19/52/d0019252_46c821c25001c.png');" /><br>1. 0x00000000 ~ 0xFFFFFFFF 의 메모리를 읽어 출력한다.<br><br>2. 다음 함수를 이용하여 메모리의 내용을 읽을 수 있다.<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #000099">BOOL</span> <span style="COLOR: #990000">ReadProcessMemory</span>( <span style="COLOR: #000099">HANDLE</span> hProcess,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #000099">LPCVOID</span> lpBaseAddress,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #000099">LPVOID</span> lpBuffer,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #000099">SIZE_T</span> nSize,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #000099">SIZE_T</span> * lpNumberOfBytesRead );<br><br>3. 기타 메모리 관련 함수<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #000099">BOOL</span> <span style="COLOR: #990000">WriteProcecssMemory </span>( ... );&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;메모리에 내용을 쓴다.<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #000099">DWORD</span> <span style="COLOR: #990000">VirtualQuery </span>( ... );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;현재 메모리 액세스&nbsp;권한을 얻는다.<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #000099">BOOL</span> <span style="COLOR: #990000">VirtualProtect </span>( ... );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 메모리 액세스&nbsp;권한을 변경한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #000099">BOOL</span> <span style="COLOR: #990000">FlushInstructionCache </span>( ... );&nbsp;&nbsp;&nbsp;&nbsp;// 캐쉬를 비워 메모리 변경을 Refresh 한다.<br><br>4. 메모리 값 변경 과정<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #990000">VirtualQuery -&gt; VirtualProtect -&gt; WriteProcecssMemory&nbsp;-&gt; VirtualProtect&nbsp; -&gt; FlushInstructionCache<br><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;현재 권한 저장 -&gt;&nbsp;권한 변경(수정가능)&nbsp;-&gt; 메모리 쓰기 -&gt;&nbsp;권한 복원(수정불가) -&gt; 캐쉬 비우기</span></span>			 ]]> 
		</description>
		<category>→ System Program</category>

		<comments>http://jbjempire.egloos.com/1416679#comments</comments>
		<pubDate>Sun, 19 Aug 2007 11:04:31 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버거 기능의 구현(3) : 심볼 테이블 ]]> </title>
		<link>http://jbjempire.egloos.com/1416659</link>
		<guid>http://jbjempire.egloos.com/1416659</guid>
		<description>
			<![CDATA[ 
  <img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds5.egloos.com/pds/200708/19/52/d0019252_46c81e4d803bc.png" width="379" height="284" onclick="Control.Modal.openDialog(this, event, 'http://pds5.egloos.com/pds/200708/19/52/d0019252_46c81e4d803bc.png');" /><br>1. 심볼 테이블?<br>&nbsp;&nbsp;&nbsp;&nbsp;- 심볼 테이블은 하나의 함수가 호출될 때 필요한 메모리 크기를 미리 계산해 둔 메모리 지도<br>&nbsp;&nbsp;&nbsp;&nbsp;- 컴파일 할 때 코드 세그먼트(Code Segment)에 생성된다.<br><br>2. 함수 호출 시<br>&nbsp;&nbsp;&nbsp;&nbsp;- 함수가 호출되면 해당 함수의 심볼 테이블을 이용해서 스택&nbsp;공간에&nbsp;함수에 필요한 메모리를 확보한 후 코드를 실행한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;- 함수가 종료되면 함수가 사용하던 메모리를 제거하게 된다.<br><br>3. 심볼 테이블을 확인하고자 한다면...<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #000099">BOOL</span> <span style="COLOR: #990000">SymEnumerateSymbols</span> ( <span style="COLOR: #000099">HANDLE</span> hProcess,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #000099">DWORD</span> BaseOfDll,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #000099">PSYM_ENUMSYMBOLS_CALLBACK</span> EnumSymbolCallback,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #000099">PVOID</span> UserContex );<br>&nbsp;&nbsp;&nbsp;&nbsp;- <span style="COLOR: #000099">BOOL</span> <span style="COLOR: #cc33cc">CALLBACK</span> <span style="COLOR: #cc0000">SymEnumerateSymbolsProc</span> ( <span style="COLOR: #000099">PTSTR</span> SymbolName,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #000099">DWORD</span> SymbolAddress,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #000099">ULONG</span> SymbolSize,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #000099">&nbsp;&nbsp;&nbsp;&nbsp;PVOID</span> UserContext );<br>&nbsp;&nbsp;&nbsp;&nbsp;위의 함수들을 이용하면 된다...			 ]]> 
		</description>
		<category>→ System Program</category>

		<comments>http://jbjempire.egloos.com/1416659#comments</comments>
		<pubDate>Sun, 19 Aug 2007 10:54:22 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버거 기능의 구현(2) : Step Over, In, Out ]]> </title>
		<link>http://jbjempire.egloos.com/1416442</link>
		<guid>http://jbjempire.egloos.com/1416442</guid>
		<description>
			<![CDATA[ 
  <div style="TEXT-ALIGN: right"><div style="TEXT-ALIGN: left"><img border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds3.egloos.com/pds/200708/19/52/d0019252_46c7f5dbb89aa.png" width="379" height="284" onclick="Control.Modal.openDialog(this, event, 'http://pds3.egloos.com/pds/200708/19/52/d0019252_46c7f5dbb89aa.png');" /><br>1. Step Over (F10) : 함수 호출이 일어나면, 호출된 함수가 작업을 마친 후 리턴되고, 다음 줄로 이동한다.<br><br>2. Step In (F11) : 함수 호출이 일어나면, 호출된 함수 내부로 이동한다.<br><br>3. Step Out (Shift+F11) : 호출된 함수를 빠져나간 후 호출되기 이전 소스에서 다음 줄로 이동한다.<br><br><span style="COLOR: #000099">&lt; Source Level &gt;<br></span><span style="COLOR: #ff0000">* 소스는 한 줄 간격이더라도, 디스어셈블리 상태에선 여러 라인이 존재한다는 것을 상기할 것 !!<br></span>1. Over :&nbsp;SymGetNextLine() 로 다음 소스 라인 주소를 얻어, 현재 라인 주소부터 다음 라인&nbsp;주소까지&nbsp;명령어 검색<br>&nbsp;&nbsp;&nbsp;&nbsp;1. 분기 명령이 없다면... : <span style="COLOR: #000099">다음&nbsp;Src 주소</span>에 브레이크&nbsp;포인트를 설정하여, 소스상 다음 라인에서 브레이크 걸리게 한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;2. 분기 명령이 있다면...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.&nbsp;call 명령 : call 명령은 무시하고, 다음 명령을 계속 검색한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.&nbsp;jmp, ret 명령 : <span style="COLOR: #006600">현재 Asm&nbsp;주소</span>에 Trap을 설정하여, 다음 명령에서 브레이크 걸리게 한다.<br><br>2. In : Over 기능과 거의 흡사하게 구현하지만, [2.1]에서&nbsp;call 명령이 있다면, 호출 주소에 브레이크 포인트를 설정한다.<br><br>3. Out : 현재 라인 주소부터 계속 Asm 주소 한 줄씩 명령어&nbsp;검색한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret 명령어가 나오면 <span style="COLOR: #006600">현재 Asm&nbsp;주소</span>에 Trap을 설정하여, 다음 명령에서 브레이크 걸리게 한다.<br><span style="COLOR: #000099"><br>&lt; Disassem Level &gt;<br><span style="COLOR: #ff0000">* 디스어셈블리 상태에서는 쉽다. 한 줄씩 디스어셈블하며 명령어를 검색하면 끝 !!</span><br></span>1. Over : call 명령이 있으면, 다음 Asm 주소에 브레이크 포인트를 설정한다. call 명령이 아니면, Sep In 구현과 동일.<br><br>2. In : 무조건 현재 라인에 Trap을 설정하여, 디버기 재실행시 바로 다음 명령어 주소에 브레이크 걸리게 한다.<br><br>3. Out : 소스 레벨의 Step Out 과정과 동일하다.</div></div>			 ]]> 
		</description>
		<category>→ System Program</category>

		<comments>http://jbjempire.egloos.com/1416442#comments</comments>
		<pubDate>Sun, 19 Aug 2007 08:37:28 GMT</pubDate>
		<dc:creator>이슬술사</dc:creator>
	</item>
</channel>
</rss>
