summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/sys/debug.h4
-rw-r--r--src/arch/nt32/debug.c10
-rw-r--r--src/arch/nt64/debug.c10
3 files changed, 24 insertions, 0 deletions
diff --git a/include/sys/debug.h b/include/sys/debug.h
index b207363..d66d0ac 100644
--- a/include/sys/debug.h
+++ b/include/sys/debug.h
@@ -161,6 +161,10 @@ int __dbg_lbreak(int);
ssize_t __dbg_vm_read(int, void *, size_t, uintptr_t);
ssize_t __dbg_vm_write(int, const void *, size_t, uintptr_t);
+/* thread register context */
+int __dbg_regs_fetch(int, pid_t, mcontext_t *);
+int __dbg_regs_store(int, pid_t, const mcontext_t *);
+
/* suspend/resume thread; return previous suspend count (negative for an error) */
int __dbg_suspend_thread(int, pid_t);
int __dbg_resume_thread(int, pid_t);
diff --git a/src/arch/nt32/debug.c b/src/arch/nt32/debug.c
index e8132be..77c8074 100644
--- a/src/arch/nt32/debug.c
+++ b/src/arch/nt32/debug.c
@@ -57,6 +57,16 @@ ssize_t __dbg_vm_write(int pfd, const void * buf, size_t len, uintptr_t addr)
return syscall(SYS_dbg_vm_write,pfd,buf,len,addr);
}
+int __dbg_regs_fetch(int pfd, pid_t tid, mcontext_t * regctx)
+{
+ return syscall(SYS_dbg_regs_fetch,pfd,tid,regctx);
+}
+
+int __dbg_regs_store(int pfd, pid_t tid, const mcontext_t * regctx)
+{
+ return syscall(SYS_dbg_regs_store,pfd,tid,regctx);
+}
+
int __dbg_suspend_thread(int pfd, pid_t tid)
{
return syscall(SYS_dbg_suspend_thread,pfd,tid);
diff --git a/src/arch/nt64/debug.c b/src/arch/nt64/debug.c
index e8132be..77c8074 100644
--- a/src/arch/nt64/debug.c
+++ b/src/arch/nt64/debug.c
@@ -57,6 +57,16 @@ ssize_t __dbg_vm_write(int pfd, const void * buf, size_t len, uintptr_t addr)
return syscall(SYS_dbg_vm_write,pfd,buf,len,addr);
}
+int __dbg_regs_fetch(int pfd, pid_t tid, mcontext_t * regctx)
+{
+ return syscall(SYS_dbg_regs_fetch,pfd,tid,regctx);
+}
+
+int __dbg_regs_store(int pfd, pid_t tid, const mcontext_t * regctx)
+{
+ return syscall(SYS_dbg_regs_store,pfd,tid,regctx);
+}
+
int __dbg_suspend_thread(int pfd, pid_t tid)
{
return syscall(SYS_dbg_suspend_thread,pfd,tid);