2017-04-13 8 views
-4

gdb와 watchpoint는 프로그래밍 방식으로 watchpoint를 넣기를 원합니다. 어셈블리로도 가능하다고 들었습니다. 현재 시간에 나는 단지이 명령 등의 중단 점을 알고 :C - 어셈블리와 함께 워 우트 포인트 만들기

int i=0; 
while(1){ 
    i++; 
    if(i >= 10) 
     asm("int");/*break*/ 
} 

검색 후에는 TUI 모드를 사용하여 조립의 지시를 표시하고 내 프로그램에서 재사용 가능성이 존재하지만 작동하지 않습니다.

gdb -q ./prog -tui 
gdb: TUI mode is not supported 

도움 주셔서 감사합니다.

+0

'int 3'을 호출하여 브레이크 포인트를 트리거하는 것이 간단하지만 워치 포인트가 훨씬 더 복잡합니다 ... 디버거가 세그먼트를 보호하고 해당 세그먼트에서 페이지 오류가 발생하면 주소가 일치하는지 확인합니다 봤어. 행운을 빕니다. –

+3

그리고 당신의 문제는 무엇입니까? 귀하의 질문은 무엇인가? 잠시 시간을내어 좋은 질문을하는 법을 읽으십시오.] (http://stackoverflow.com/help/how-to-ask). –

+0

어떤 CPU 아키텍처를 사용하고 있습니까? – bta

답변

0

x86에서 하드웨어 감시 점을 만들려면 디버그 레지스터 중 하나를 프로그래밍해야합니다. here을 시작할 수 있습니다.