Subversion Repositories Kolibri OS

Rev

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