Commit 6d946cdae0b5ba6b45499a124263b57ca5bffe68
1 parent
afec1122
User qemu profiling
- Makefile.target: re-enable profiling for user qemu. It seems profiling was (accidently?) removed by commit 3937 - syscall.c: * add an include to get _mcleanup prototype * add a call to _mcleanup for exit_group in a way similar to what is done for exit (Laurent Desnogues) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5642 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
12 additions
and
0 deletions
Makefile.target
... | ... | @@ -397,6 +397,12 @@ LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld |
397 | 397 | endif |
398 | 398 | endif |
399 | 399 | |
400 | +# profiling code | |
401 | +ifdef TARGET_GPROF | |
402 | +LDFLAGS+=-p | |
403 | +CFLAGS+=-p | |
404 | +endif | |
405 | + | |
400 | 406 | OBJS= main.o syscall.o strace.o mmap.o signal.o path.o thunk.o \ |
401 | 407 | elfload.o linuxload.o uaccess.o |
402 | 408 | LIBS+= $(AIOLIBS) | ... | ... |
linux-user/syscall.c
... | ... | @@ -54,6 +54,9 @@ |
54 | 54 | #include <netinet/ip.h> |
55 | 55 | #include <netinet/tcp.h> |
56 | 56 | #include <qemu-common.h> |
57 | +#ifdef HAVE_GPROF | |
58 | +#include <sys/gmon.h> | |
59 | +#endif | |
57 | 60 | |
58 | 61 | #define termios host_termios |
59 | 62 | #define winsize host_winsize |
... | ... | @@ -4864,6 +4867,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, |
4864 | 4867 | #ifdef __NR_exit_group |
4865 | 4868 | /* new thread calls */ |
4866 | 4869 | case TARGET_NR_exit_group: |
4870 | +#ifdef HAVE_GPROF | |
4871 | + _mcleanup(); | |
4872 | +#endif | |
4867 | 4873 | gdb_exit(cpu_env, arg1); |
4868 | 4874 | ret = get_errno(exit_group(arg1)); |
4869 | 4875 | break; | ... | ... |