Hi - This patchset adds a new-and-improved strace and a lot of bug fixes I found along the way. Some, like the console bugs, are ancient. You'll need to rebuild glibc to get all of the fixes, though I recommend rebuilding the world.
As far as strace goes, try strace --help. It's basically like Linux's strace, with -f, -p, -o, and -e. We can add more trace sets easily too. There's also bash completion for strace and perf. I stopped short of doing per-syscall output formatting. Future work. Barret The following changes since commit cfd8d39346ef5b2539e46d0e308dba01611e1570: VMM: SMP guest (XCC) (2017-02-07 13:01:42 -0500) are available in the git repository at: [email protected]:brho/akaros.git strace for you to fetch changes up to 173c6446927421073148cccfcad13ea988364c84: strace: Support all sorts of crazy things! (2017-02-09 12:31:44 -0500) ---------------------------------------------------------------- View this online at: https://github.com/brho/akaros/compare/cfd8d39346ef...173c64469274 ---------------------------------------------------------------- Barret Rhoden (30): Compile with -Wreturn-type Clean bash during make apps-clean cap: Fix openmode issue Add a dump function for trace_printk() Print out whether a process is VC ctx ready Add a verbosity parameter to "pip" Allow backtrace_user_ctx() on remote cores Remove another alloca from glibc printf (XCC) Don't miss events for early SCPs (XCC) qio: Fix race with multiple blockers cons: Fix initialization bug x86: Poll and discard console devices during setup x86: Remove the POLL_CONSOLE hack Add a helper for a bitmap's size Add bash completion for perf and strace strace: Remove the ability to write to Qstrace strace: Qstrace controls whether tracing is on strace: Filter syscalls (XCC) parlib: Add a syscall lookup table (XCC) Rename SYS_yield -> SYS_proc_yield (XCC) Atomically initialize parts of the 2LS (XCC) parlib: Don't run ctors in "fake parlib" pth: Remove fun debugging comment pth: Use barriers in pthread tests strace: Block the target when the strace q is full strace: Use Qmsg for the trace log (XCC) strace: Use the kpage allocator for traces Don't use MEM_WAIT in alloc_sysc_str() devproc: Remove unused or dangerous commands strace: Support all sorts of crazy things! .gitignore | 1 + Makefile | 5 +- kern/arch/x86/Kconfig | 7 - kern/arch/x86/init.c | 4 +- kern/drivers/dev/capability.c | 6 +- kern/drivers/dev/cons.c | 9 + kern/drivers/dev/kprof.c | 11 + kern/drivers/dev/proc.c | 151 +++--- kern/include/bitmap.h | 6 + kern/include/env.h | 2 - kern/include/ns.h | 12 +- kern/include/process.h | 2 +- kern/include/ros/bits/syscall.h | 11 +- kern/include/ros/syscall.h | 1 + kern/include/syscall.h | 6 +- kern/kfs/.bashrc | 7 + kern/src/kdebug.c | 4 +- kern/src/monitor.c | 18 +- kern/src/ns/qio.c | 108 +++-- kern/src/process.c | 33 +- kern/src/syscall.c | 106 +++- scripts/make_syscall_tbl.sh | 42 ++ tests/futex_timeout.c | 1 + tests/mcp_halt.c | 2 +- tests/mhello.c | 2 +- tests/pthread_switch.c | 8 +- tests/pthread_test.c | 7 +- tests/strace.c | 534 ++++++++++++++++++--- tests/vmm/vmrunkernel.c | 2 +- .../glibc-2.19-akaros/stdio-common/vfprintf.c | 17 +- .../glibc-2.19-akaros/sysdeps/akaros/sched_yield.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/syscall.c | 13 +- user/benchutil/alarm.c | 1 + user/benchutil/pvcalarm.c | 3 +- user/parlib/Makefile | 6 + user/parlib/event.c | 3 + user/parlib/include/parlib/event.h | 1 + user/parlib/include/parlib/parlib.h | 3 + user/parlib/include/parlib/uthread.h | 11 +- user/parlib/include/parlib/vcore.h | 1 + user/parlib/include/parlib/x86/trap.h | 2 + user/parlib/syscall.c | 2 +- user/parlib/thread0_sched.c | 5 +- user/parlib/uthread.c | 53 +- user/parlib/vcore.c | 18 +- user/pthread/pthread.c | 11 +- user/utest/cv.c | 3 + user/utest/example.c | 3 + user/utest/include/utest.h | 3 +- user/utest/pvcalarm.c | 1 + user/utest/signal.c | 1 + user/vmm/apic.c | 2 +- user/vmm/ioapic.c | 2 +- user/vmm/sched.c | 4 +- 54 files changed, 970 insertions(+), 309 deletions(-) create mode 100644 kern/kfs/.bashrc create mode 100755 scripts/make_syscall_tbl.sh -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
