Start working through proper handling of pthreads when
debugging Linux core dumps. Pthreads for active processes
is still not supported, nor are other systems.
diff --git a/src/libmach/ureg386.c b/src/libmach/ureg386.c
index 09ef095..7694503 100644
--- a/src/libmach/ureg386.c
+++ b/src/libmach/ureg386.c
@@ -1,18 +1,11 @@
#include <u.h>
#include <libc.h>
#include <mach.h>
-#include <elf.h>
#include "ureg386.h"
-
-Ureg*
-_linux2ureg386(UregLinux386 *l)
+void
+linux2ureg386(UregLinux386 *l, Ureg *u)
{
- Ureg *u;
-
- u = malloc(sizeof(Ureg));
- if(u == nil)
- return nil;
u->di = l->edi;
u->si = l->esi;
u->bp = l->ebp;
@@ -32,5 +25,27 @@
u->flags = l->eflags;
u->sp = l->esp;
u->ss = l->xss;
- return u;
}
+
+void
+ureg2linux386(Ureg *u, UregLinux386 *l)
+{
+ l->edi = u->di;
+ l->esi = u->si;
+ l->ebp = u->bp;
+ l->esp = u->nsp;
+ l->ebx = u->bx;
+ l->edx = u->dx;
+ l->ecx = u->cx;
+ l->eax = u->ax;
+ l->xgs = u->gs;
+ l->xfs = u->fs;
+ l->xes = u->es;
+ l->xds = u->ds;
+ l->eip = u->pc;
+ l->xcs = u->cs;
+ l->eflags = u->flags;
+ l->esp = u->sp;
+ l->xss = u->ss;
+}
+