Rev 1329 | Rev 2455 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1329 | Rev 1394 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 1329 $ |
8 | $Revision: 1394 $ |
9 | 9 | ||
10 | 10 | ||
Line 321... | Line 321... | ||
321 | dec eax |
321 | dec eax |
322 | jnz .err |
322 | jnz .err |
323 | call get_debuggee_slot |
323 | call get_debuggee_slot |
324 | jc .err |
324 | jc .err |
325 | shr eax, 5 |
325 | shr eax, 5 |
326 | ; mov ebx, esi |
326 | mov ecx, edi |
327 | call read_process_memory |
327 | call read_process_memory |
328 | sti |
328 | sti |
329 | mov dword [esp+32], eax |
329 | mov dword [esp+32], eax |
330 | ret |
330 | ret |
331 | .err: |
331 | .err: |
Line 347... | Line 347... | ||
347 | dec eax |
347 | dec eax |
348 | jnz debug_read_process_memory.err |
348 | jnz debug_read_process_memory.err |
349 | call get_debuggee_slot |
349 | call get_debuggee_slot |
350 | jc debug_read_process_memory.err |
350 | jc debug_read_process_memory.err |
351 | shr eax, 5 |
351 | shr eax, 5 |
352 | ; mov ebx, esi |
352 | mov ecx, edi |
353 | call write_process_memory |
353 | call write_process_memory |
354 | sti |
354 | sti |
355 | mov [esp+32], eax |
355 | mov [esp+32], eax |
356 | ret |
356 | ret |
Line 366... | Line 366... | ||
366 | mov edi, [timer_ticks] |
366 | mov edi, [timer_ticks] |
367 | add edi, 500 ; 5 sec timeout |
367 | add edi, 500 ; 5 sec timeout |
368 | .1: |
368 | .1: |
369 | mov eax, ebp |
369 | mov eax, ebp |
370 | shl eax, 8 |
370 | shl eax, 8 |
371 | mov edx, [SLOT_BASE+eax+APPDATA.dbg_event_mem] |
371 | mov esi, [SLOT_BASE+eax+APPDATA.dbg_event_mem] |
372 | test edx, edx |
372 | test esi, esi |
373 | jz .ret |
373 | jz .ret |
374 | ; read buffer header |
374 | ; read buffer header |
375 | push ecx |
375 | push ecx |
376 | push eax |
376 | push eax |
377 | push eax |
377 | push eax |
378 | mov eax, ebp |
378 | mov eax, ebp |
379 | mov ebx, esp |
379 | mov ecx, esp |
380 | mov ecx, 8 |
380 | mov edx, 8 |
381 | call read_process_memory |
381 | call read_process_memory |
382 | cmp eax, ecx |
382 | cmp eax, edx |
383 | jz @f |
383 | jz @f |
384 | add esp, 12 |
384 | add esp, 12 |
385 | jmp .ret |
385 | jmp .ret |
386 | @@: |
386 | @@: |
387 | cmp dword [ebx], 0 |
387 | cmp dword [ecx], 0 |
388 | jg @f |
388 | jg @f |
389 | .2: |
389 | .2: |
390 | pop ecx |
390 | pop ecx |
391 | pop ecx |
391 | pop ecx |
392 | pop ecx |
392 | pop ecx |
Line 398... | Line 398... | ||
398 | sti |
398 | sti |
399 | call change_task |
399 | call change_task |
400 | cli |
400 | cli |
401 | jmp .1 |
401 | jmp .1 |
402 | @@: |
402 | @@: |
403 | mov ecx, [ebx+8] |
403 | mov edx, [ecx+8] |
404 | add ecx, [ebx+4] |
404 | add edx, [ecx+4] |
405 | cmp ecx, [ebx] |
405 | cmp edx, [ecx] |
406 | ja .2 |
406 | ja .2 |
407 | ; advance buffer position |
407 | ; advance buffer position |
408 | push ecx |
408 | push edx |
409 | mov ecx, 4 |
409 | mov edx, 4 |
410 | sub ebx, ecx |
410 | sub ecx, edx |
411 | mov eax, ebp |
411 | mov eax, ebp |
412 | add edx, ecx |
412 | add esi, edx |
413 | call write_process_memory |
413 | call write_process_memory |
414 | pop eax |
414 | pop eax |
415 | ; write message |
415 | ; write message |
416 | mov eax, ebp |
416 | mov eax, ebp |
417 | add edx, ecx |
417 | add esi, edx |
418 | add edx, [ebx+8] |
418 | add esi, [ecx+8] |
419 | add ebx, 20 |
419 | add ecx, 20 |
420 | pop ecx |
420 | pop edx |
421 | pop ecx |
421 | pop edx |
422 | pop ecx |
422 | pop edx |
423 | call write_process_memory |
423 | call write_process_memory |
424 | ; new debug event |
424 | ; new debug event |
425 | mov eax, ebp |
425 | mov eax, ebp |
426 | shl eax, 8 |
426 | shl eax, 8 |
427 | or byte [SLOT_BASE+eax+APPDATA.event_mask+1], 1 ; set flag 100h |
427 | or byte [SLOT_BASE+eax+APPDATA.event_mask+1], 1 ; set flag 100h |