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