Fix alpha gdb -k on "live" kernels. Use offsetof() instead of some evil

hand-rolled macros to do the same thing.
This commit is contained in:
Peter Wemm 2001-09-20 06:31:23 +00:00
parent b126eb6ef2
commit d1c276c383

View File

@ -128,10 +128,17 @@ initial_pcb()
* Therefore, just use proc0 and let the user set
* some other context if they care about it.
*/
addr = ksym_lookup("proc0paddr");
addr = ksym_lookup("thread0");
if (kvread(addr, &val)) {
error("cannot read proc0paddr pointer at %x\n", addr);
error("cannot read thread0 pointer at %x\n", addr);
val = 0;
} else {
/* Read the PCB address in proc structure. */
addr = (CORE_ADDR)val + offsetof(struct thread, td_pcb);
if (kvread(addr, &val)) {
error("cannot read thread0->td_pcb pointer at %x\n", addr);
val = 0;
}
}
return ((CORE_ADDR)val);