hardware breakpoint

David Sauer davids na penguin.cz
Pátek Listopad 12 16:56:31 CET 1999


>>>> "TS" == Tomas Sieger <tsie4391 na u-sl2.ms.mff.cuni.cz> writes:

    TS> Zdravim, muzete, prosim, poradit, zda lze v Linuxu (RedHat 5.1 na
    TS> Intelu) pouzivat hardwarove breakpointy?  Pisu debugger, kde by se
    TS> to hodilo.

    TS> Problemy: hw breakpoint lze nastavit jen na urovni opravneni 0
    TS> (jadro), zadny syscall na nastaveni hw breakpointu jsem ale
    TS> nenasel. Predstavoval bych si to tak, ze mi jadro hw breakpoint

Rekl bych, ze to funguje normalne, zadny zvlastni pristup k HW to
nevyzaduje (jiste to nevim, chce to vyzkouset).
Ostatne myslim, ze linux bude mit pristup k HW ladicim registrum pro
normalni tasky zakazan
 Postupoval bych asi takto: (plati pro x86)

ptrace(PTRACE_ATTACH, pid, 0, 0);  /* pripojeni k procesu */

ptrace(PTRACE_PEEKUSR, 0, addr, 0); /* pristup k ladicim registrum */
ptrace(PTRACE_POKEUSER, 0, addr, hodnota);

adresu bych spocital jako offset ve 'struct user', nekde je tam pristup k HW
ladicim registrum (DR0-7, polozky se jmenuji u_debugreg, struct user je
definovana v <sys/user.h> a/nebo <asm/user.h>).

Proces, ktery provadi ladeni, by pak mohl pristupovat k ladenemu normalnim
mechanismem pres ptrace(...), cekani na breakpoint v ladenem programu
pak pomoci wait(2).

                                happy hacking,

-- 
* David Sauer, student of Czech Technical University
* electronic mail: davids na penguin.cz (mime compatible)


Další informace o konferenci Linux