diff options
-rw-r--r-- | gnu/usr.bin/gdb/libgdb/fbsd-threads.c | 14 | ||||
-rw-r--r-- | include/proc_service.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gnu/usr.bin/gdb/libgdb/fbsd-threads.c b/gnu/usr.bin/gdb/libgdb/fbsd-threads.c index e9f83a9..b88b73f 100644 --- a/gnu/usr.bin/gdb/libgdb/fbsd-threads.c +++ b/gnu/usr.bin/gdb/libgdb/fbsd-threads.c @@ -1685,3 +1685,17 @@ ps_lcontinue(struct ps_prochandle *ph, lwpid_t lwpid) return PS_ERR; return PS_OK; } + +ps_err_e +ps_linfo(struct ps_prochandle *ph, lwpid_t lwpid, void *info) +{ + if (fbsd_thread_core) { + /* XXX should verify lwpid and make a pseudo lwp info */ + memset(info, 0, sizeof(struct ptrace_lwpinfo)); + return PS_OK; + } + + if (ptrace (PT_LWPINFO, lwpid, info, sizeof(struct ptrace_lwpinfo)) == -1) + return PS_ERR; + return PS_OK; +} diff --git a/include/proc_service.h b/include/proc_service.h index 0299b95..c9e6f27 100644 --- a/include/proc_service.h +++ b/include/proc_service.h @@ -56,6 +56,7 @@ ps_err_e ps_lgetxmmregs (struct ps_prochandle *, lwpid_t, char *); ps_err_e ps_lsetxmmregs (struct ps_prochandle *, lwpid_t, const char *); #endif ps_err_e ps_lstop(struct ps_prochandle *, lwpid_t); +ps_err_e ps_linfo(struct ps_prochandle *, lwpid_t, void *); ps_err_e ps_pcontinue(struct ps_prochandle *); ps_err_e ps_pdmodel(struct ps_prochandle *, int *); ps_err_e ps_pglobal_lookup(struct ps_prochandle *, const char *, const char *, |