From ae85b3e514a8622b6b047db1ffb659ed63b42a0a Mon Sep 17 00:00:00 2001 From: Stefani Seibold Date: Tue, 3 Nov 2015 14:27:36 +0100 Subject: [PATCH] rename tool in mtrace-ng and new long dump option remame the toll in mtrace-ng add new long dump optios, which shows also the libraries minor fixes --- HOWTO | 30 +- Makefile.am | 14 +- Makefile.in | 28 +- README.md | 18 +- autom4te.cache/output.0 | 28 +- autom4te.cache/output.1 | 28 +- autom4te.cache/output.2 | 28 +- autom4te.cache/requests | 780 +++++++++++++++--------------- autom4te.cache/traces.2 | 2 +- backend.h | 4 +- backtrace.h | 2 +- breakpoint.c | 2 +- breakpoint.h | 2 +- client/Makefile.am | 2 +- client/Makefile.in | 2 +- client/bfdinc.h | 2 +- client/binfile.c | 74 +-- client/binfile.h | 8 +- client/client.c | 2 +- client/client.h | 2 +- client/dump.c | 2 +- client/dump.h | 2 +- client/job.c | 6 +- client/job.h | 4 +- client/process.c | 117 +++-- client/process.h | 20 +- client/readline.c | 24 +- client/readline.h | 2 +- common.c | 2 +- common.h | 2 +- configure | 28 +- configure.ac | 4 +- debug.c | 2 +- debug.h | 2 +- dict.c | 2 +- dict.h | 2 +- dwarf.c | 2 +- dwarf.h | 2 +- event.c | 2 +- event.h | 2 +- forward.h | 2 +- library.c | 2 +- library.h | 2 +- list.h | 2 +- main.c | 2 +- main.h | 2 +- memtrace.h | 2 +- mtelf.c | 2 +- mtelf.h | 2 +- mtrace.1 => mtrace-ng.1 | 80 +-- mtrace.conf.5 => mtrace-ng.conf.5 | 8 +- mtrace.h | 2 +- options.c | 32 +- options.h | 3 +- rbtree.c | 2 +- rbtree.h | 2 +- report.c | 18 +- report.h | 2 +- server.c | 2 +- server.h | 2 +- sysdeps/Makefile.am | 2 +- sysdeps/Makefile.in | 2 +- sysdeps/linux-gnu/Makefile.am | 2 +- sysdeps/linux-gnu/Makefile.in | 2 +- sysdeps/linux-gnu/arm/Makefile.am | 4 +- sysdeps/linux-gnu/arm/Makefile.in | 4 +- sysdeps/linux-gnu/arm/arch.c | 2 +- sysdeps/linux-gnu/arm/arch.h | 2 +- sysdeps/linux-gnu/arm/dwarf-arm.c | 2 +- sysdeps/linux-gnu/arm/regs.c | 2 +- sysdeps/linux-gnu/backtrace.c | 2 +- sysdeps/linux-gnu/ioevent.c | 2 +- sysdeps/linux-gnu/ioevent.h | 2 +- sysdeps/linux-gnu/os.c | 8 +- sysdeps/linux-gnu/os.h | 2 +- sysdeps/linux-gnu/ppc/Makefile.am | 4 +- sysdeps/linux-gnu/ppc/Makefile.in | 4 +- sysdeps/linux-gnu/ppc/arch.c | 2 +- sysdeps/linux-gnu/ppc/arch.h | 2 +- sysdeps/linux-gnu/ppc/dwarf-ppc.c | 2 +- sysdeps/linux-gnu/ppc/regs.c | 2 +- sysdeps/linux-gnu/proc.c | 4 +- sysdeps/linux-gnu/socket.c | 2 +- sysdeps/linux-gnu/socket.h | 2 +- sysdeps/linux-gnu/thread.c | 2 +- sysdeps/linux-gnu/trace.c | 6 +- sysdeps/linux-gnu/x86/Makefile.am | 4 +- sysdeps/linux-gnu/x86/Makefile.in | 4 +- sysdeps/linux-gnu/x86/arch.c | 2 +- sysdeps/linux-gnu/x86/arch.h | 2 +- sysdeps/linux-gnu/x86/dwarf-x86.c | 2 +- sysdeps/linux-gnu/x86/regs.c | 2 +- sysdeps/sysdep.h | 2 +- task.c | 2 +- task.h | 4 +- thread.h | 2 +- trace.c | 2 +- trace.h | 2 +- 98 files changed, 805 insertions(+), 755 deletions(-) rename mtrace.1 => mtrace-ng.1 (90%) rename mtrace.conf.5 => mtrace-ng.conf.5 (84%) diff --git a/HOWTO b/HOWTO index da6cda8..8d2cca7 100644 --- a/HOWTO +++ b/HOWTO @@ -1,8 +1,8 @@ -The easiest way for using mtrace is simply run a program under the control of mtrace: +The easiest way for using mtrace-ng is simply run a program under the control of mtrace-ng: -mtrace -t -d 10 a.out +mtrace-ng -t -d 10 a.out -This will run a.out and records all memory allocations. When the program exits or mtrace is terminated, it dumps all open memory allocations for each different stack backtrace: +This will run a.out and records all memory allocations. When the program exits or mtrace-ng is terminated, it dumps all open memory allocations for each different stack backtrace: . . @@ -30,7 +30,7 @@ In this case you see for the last stack backtrace which calls malloc() by functi The default sort order is "allocations", which sorts the output by the number of open allocations. The lowest value is printed out first and the highest value at last. So the most interesting values are always in view. If you wish a different sort order und can pass a -S option, for example. -mtrace -t -d 10 -s usage a.out +mtrace-ng -t -d 10 -s usage a.out This will sort by the total sum of bytes used: @@ -70,7 +70,7 @@ Stack (mmap): [0x7ff0c9587b55] /lib64/libc.so.6 __libc_start_main [0x400b89] /home/stefani/mt/test/a.out _start -So you can see that the last two stack backtraces both called mmap() from inside the pthread_create() function. But since there are two different backtrace stacks there will be not merged together (the first on is called by x.c:117 and the other by x.c:128). Lets assume for the above example the stack backtrace depth is set (to the not really useful) value of 1, then mtrace would output: +So you can see that the last two stack backtraces both called mmap() from inside the pthread_create() function. But since there are two different backtrace stacks there will be not merged together (the first on is called by x.c:117 and the other by x.c:128). Lets assume for the above example the stack backtrace depth is set (to the not really useful) value of 1, then mtrace-ng would output: Stack (mmap): bytes used: 16785408 @@ -83,21 +83,21 @@ In this case it is not possible to identifiy which function has been called pthr It is also possible to write the output to a file instead to stderr, for example: -mtrace -t -d 10 -o /tmp/mtrace.out a.out +mtrace-ng -t -d 10 -o /tmp/mtrace-ng.out a.out -In this case the dump will written to /tmp/mtrace.out after the program exits or mtrace is terminated. Note that in the case the sort order is inverted, the highest value is written first to the file and the lowest value at last. So the most interesting values are always in view when opening the file with an editor. +In this case the dump will written to /tmp/mtrace-ng.out after the program exits or mtrace-ng is terminated. Note that in the case the sort order is inverted, the highest value is written first to the file and the lowest value at last. So the most interesting values are always in view when opening the file with an editor. It is also possible to attach to an already running program: -mtrace -t -d 10 -o /tmp/mtrace.out -p $(pidof -s a.out) +mtrace-ng -t -d 10 -o /tmp/mtrace-ng.out -p $(pidof -s a.out) -This is e.g. useful when you not want do trace the whole startup of the program or you want to test only a specific function of a program. Imaging a test scenario where a leak is assumed. So attached mtrace, run the tests (more then once is better) and then terminated mtrace by Ctrl-C. One of last dump stack backtraces should show the culprit. +This is e.g. useful when you not want do trace the whole startup of the program or you want to test only a specific function of a program. Imaging a test scenario where a leak is assumed. So attached mtrace-ng, run the tests (more then once is better) and then terminated mtrace-ng by Ctrl-C. One of last dump stack backtraces should show the culprit. A more sophisticate way to find a memory leak is to scan for lost pointer values, e.g. -mtrace -a -s leaks -d 10 -o /tmp/mtrace.out -p $(pidof -s a.out) +mtrace-ng -a -s leaks -d 10 -o /tmp/mtrace-ng.out -p $(pidof -s a.out) -After attach and run the tests and terminating mtrace by Ctrl-C, the memory will be scanned for lost pointer. The dump output will then sorted by the number of leaked allocations: +After attach and run the tests and terminating mtrace-ng by Ctrl-C, the memory will be scanned for lost pointer. The dump output will then sorted by the number of leaked allocations: process 12166 scanning 18 allocations process 12166 @@ -153,22 +153,22 @@ When no C++ Code is traced or when using the libstdc++ (which calls malloc() and There is also a server mode and a client with an command line interface. This is useful when you want get information during the runtime of a program, for example: -mtrace -f -r 0.0.0.0 -w -s -d 10 a.out +mtrace-ng -f -r 0.0.0.0 -w -s -d 10 a.out This start the client waiting for a client connection before running the program a.out. Then you can connect the client using an other terminal or on an other computer: -mtrace -r 127.0.0.1 +mtrace-ng -r 127.0.0.1 memtrace info: follow fork: no follow exec: no verbose: no do trace: yes stack depth: 10 -memtrace> +mtrace> No you can ask for help with the command "help", or dump the current state of the bookkeeping by using the command "dump". -For more information about the interactive mode see the manual page mtrace(1) section INTERACTIVE MODE. +For more information about the interactive mode see the manual page mtrace-ng(1) section INTERACTIVE MODE. diff --git a/Makefile.am b/Makefile.am index 855deb8..ab99bc6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or @@ -33,7 +33,7 @@ AM_CPPFLAGS += \ AM_LDFLAGS += \ -Wl,--no-as-needed -mtrace_SOURCES = \ +mtrace_ng_SOURCES = \ breakpoint.c \ common.c \ debug.c \ @@ -50,16 +50,16 @@ mtrace_SOURCES = \ task.c \ trace.c -mtrace_LDADD = \ +mtrace_ng_LDADD = \ $(libelf_LIBS) \ sysdeps/libos.la if !DISABLE_CLIENT -mtrace_LDADD += libclient.la +mtrace_ng_LDADD += libclient.la endif bin_PROGRAMS = \ - mtrace + mtrace-ng noinst_HEADERS = \ backend.h \ @@ -83,8 +83,8 @@ noinst_HEADERS = \ thread.h \ trace.h -dist_man1_MANS = mtrace.1 -dist_man5_MANS = mtrace.conf.5 +dist_man1_MANS = mtrace-ng.1 +dist_man5_MANS = mtrace-ng.conf.5 dist_doc_DATA = COPYING CREDITS INSTALL README TODO HOWTO diff --git a/Makefile.in b/Makefile.in index 936c980..b8045e1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -14,7 +14,7 @@ @SET_MAKE@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or @@ -110,7 +110,7 @@ build_triplet = @build@ host_triplet = @host@ @DISABLE_CLIENT_FALSE@am__append_1 = client @DISABLE_CLIENT_FALSE@am__append_2 = libclient.la -bin_PROGRAMS = mtrace$(EXEEXT) +bin_PROGRAMS = mtrace-ng$(EXEEXT) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/config/m4/libtool.m4 \ @@ -133,13 +133,13 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(docdir)" PROGRAMS = $(bin_PROGRAMS) -am_mtrace_OBJECTS = breakpoint.$(OBJEXT) common.$(OBJEXT) \ +am_mtrace_ng_OBJECTS = breakpoint.$(OBJEXT) common.$(OBJEXT) \ debug.$(OBJEXT) dict.$(OBJEXT) dwarf.$(OBJEXT) event.$(OBJEXT) \ library.$(OBJEXT) main.$(OBJEXT) mtelf.$(OBJEXT) \ options.$(OBJEXT) rbtree.$(OBJEXT) report.$(OBJEXT) \ server.$(OBJEXT) task.$(OBJEXT) trace.$(OBJEXT) -mtrace_OBJECTS = $(am_mtrace_OBJECTS) -mtrace_DEPENDENCIES = sysdeps/libos.la $(am__append_2) +mtrace_ng_OBJECTS = $(am_mtrace_ng_OBJECTS) +mtrace_ng_DEPENDENCIES = sysdeps/libos.la $(am__append_2) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent @@ -178,8 +178,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(mtrace_SOURCES) -DIST_SOURCES = $(mtrace_SOURCES) +SOURCES = $(mtrace_ng_SOURCES) +DIST_SOURCES = $(mtrace_ng_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -436,7 +436,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I config/m4 SUBDIRS = sysdeps $(am__append_1) . -mtrace_SOURCES = \ +mtrace_ng_SOURCES = \ breakpoint.c \ common.c \ debug.c \ @@ -453,7 +453,7 @@ mtrace_SOURCES = \ task.c \ trace.c -mtrace_LDADD = $(libelf_LIBS) sysdeps/libos.la $(am__append_2) +mtrace_ng_LDADD = $(libelf_LIBS) sysdeps/libos.la $(am__append_2) noinst_HEADERS = \ backend.h \ backtrace.h \ @@ -476,8 +476,8 @@ noinst_HEADERS = \ thread.h \ trace.h -dist_man1_MANS = mtrace.1 -dist_man5_MANS = mtrace.conf.5 +dist_man1_MANS = mtrace-ng.1 +dist_man5_MANS = mtrace-ng.conf.5 dist_doc_DATA = COPYING CREDITS INSTALL README TODO HOWTO EXTRA_DIST = MAINTAINERCLEANFILES = \ @@ -605,9 +605,9 @@ clean-binPROGRAMS: echo " rm -f" $$list; \ rm -f $$list -mtrace$(EXEEXT): $(mtrace_OBJECTS) $(mtrace_DEPENDENCIES) $(EXTRA_mtrace_DEPENDENCIES) - @rm -f mtrace$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(mtrace_OBJECTS) $(mtrace_LDADD) $(LIBS) +mtrace-ng$(EXEEXT): $(mtrace_ng_OBJECTS) $(mtrace_ng_DEPENDENCIES) $(EXTRA_mtrace_ng_DEPENDENCIES) + @rm -f mtrace-ng$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mtrace_ng_OBJECTS) $(mtrace_ng_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) diff --git a/README.md b/README.md index 0b06292..0d85710 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ Mtrace ------ -mtrace is an interactive dynamic memory tracer, debugger and statistical analyses tool for C and C++, which intercepts, records and reports all kinds of dynamic memory allocations. +mtrace-ng is an interactive dynamic memory tracer, debugger and statistical analyses tool for C and C++, which intercepts, records and reports all kinds of dynamic memory allocations. -It supports the developer to get statistics about the memory usage and finding memory leaks in an arbitrate program. Since mtrace is using breakpoints for tracing the program, there is no need of modification of the source code nor any recompilation. +It supports the developer to get statistics about the memory usage and finding memory leaks in an arbitrate program. Since mtrace-ng is using breakpoints for tracing the program, there is no need of modification of the source code nor any recompilation. -The mtrace utility intercepts the following library calls: +The mtrace-ng utility intercepts the following library calls: void *malloc(size_t size); void free(void *ptr); @@ -34,24 +34,24 @@ The mtrace utility intercepts the following library calls: For each allocation a backtrace will be recorded. This backtrace allows to trace and identify the callers of an allocation function. The depth of this backtrace could be set by the -d option. Identical backtraces will be handled as one caller, since there is no way to distinguish the callers. -Unlike other dynamic memory tracer, mtrace is able to find no longer referenced memory allocation by scanning all writable memory mappings of the program against the pointer values of the allocations. If a pointer value of an open allocated memory block will not found on any aligned memory addresses, it will be marked and reported as leaked. The scan can take some time, depending on the size of the writeable memory mappings and the number of open allocations. +Unlike other dynamic memory tracer, mtrace-ng is able to find no longer referenced memory allocation by scanning all writable memory mappings of the program against the pointer values of the allocations. If a pointer value of an open allocated memory block will not found on any aligned memory addresses, it will be marked and reported as leaked. The scan can take some time, depending on the size of the writeable memory mappings and the number of open allocations. -The mtrace utility was designed to run in a very constrained environment, like small embedded systems. This is one of the reasons for a client/server architecture. The server runs on the target side and the interactive client runs on the host side, the communication is done via TCP. If server and client running on the same machine then the communication can be done via UNIX Domain Socket. Both sides can run on different architectures, address sizes and endianness, but for tracing 64 bit programs the client must be compiled as a 64 bit program. On the host side all binaries (including debug information) must be accessible, there is no need for debug information on the target side. +The mtrace-ng utility was designed to run in a very constrained environment, like small embedded systems. This is one of the reasons for a client/server architecture. The server runs on the target side and the interactive client runs on the host side, the communication is done via TCP. If server and client running on the same machine then the communication can be done via UNIX Domain Socket. Both sides can run on different architectures, address sizes and endianness, but for tracing 64 bit programs the client must be compiled as a 64 bit program. On the host side all binaries (including debug information) must be accessible, there is no need for debug information on the target side. -mtrace offers different kind of working modes. A non interactive mode, a server mode and a interactive client mode. +mtrace-ng offers different kind of working modes. A non interactive mode, a server mode and a interactive client mode. Non interactive mode -------------------- -The most common mode is the non interactive mode, which allows to run and/or attach to a process, similar to strace. mtrace will show all open allocations when the traced program exists or mtrace will be terminated. +The most common mode is the non interactive mode, which allows to run and/or attach to a process, similar to strace. mtrace-ng will show all open allocations when the traced program exists or mtrace-ng will be terminated. Server mode ----------- -For system with memory restrictions or for using in a cross architecture environment, mtrace offers a server mode which moves the memory bookkeeping and address resolution outside to a connected client. In this case the server must be started on target system where the program is executed. Then the client has to be started on the remote host system. +For system with memory restrictions or for using in a cross architecture environment, mtrace-ng offers a server mode which moves the memory bookkeeping and address resolution outside to a connected client. In this case the server must be started on target system where the program is executed. Then the client has to be started on the remote host system. Interactive client mode ----------------------- -To get a more detailed information about the dynamic memory consumption mtrace can be started in an interactive mode. This mode is available for client mode or when attaching to a process. See the section INTERACTIVE MODE of the manual page mtrace(1) to learn more about the interactive commands in mtrace. +To get a more detailed information about the dynamic memory consumption mtrace-ng can be started in an interactive mode. This mode is available for client mode or when attaching to a process. See the section INTERACTIVE MODE of the manual page mtrace-ng(1) to learn more about the interactive commands in mtrace-ng. Restrictions diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0 index e92a444..0351635 100644 --- a/autom4te.cache/output.0 +++ b/autom4te.cache/output.0 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for mtrace 0.3. +@%:@ Generated by GNU Autoconf 2.69 for mtrace-ng 0.4. @%:@ @%:@ Report bugs to . @%:@ @@ -588,10 +588,10 @@ MFLAGS= MAKEFLAGS= # Identity of this package. -PACKAGE_NAME='mtrace' -PACKAGE_TARNAME='mtrace' -PACKAGE_VERSION='0.3' -PACKAGE_STRING='mtrace 0.3' +PACKAGE_NAME='mtrace-ng' +PACKAGE_TARNAME='mtrace-ng' +PACKAGE_VERSION='0.4' +PACKAGE_STRING='mtrace-ng 0.4' PACKAGE_BUGREPORT='stefani@seibold.net' PACKAGE_URL='' @@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures mtrace 0.3 to adapt to many kinds of systems. +\`configure' configures mtrace-ng 0.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1377,7 +1377,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/mtrace@:>@ + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/mtrace-ng@:>@ --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1399,7 +1399,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of mtrace 0.3:";; + short | recursive ) echo "Configuration of mtrace-ng 0.4:";; esac cat <<\_ACEOF @@ -1518,7 +1518,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -mtrace configure 0.3 +mtrace-ng configure 0.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2124,7 +2124,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by mtrace $as_me 0.3, which was +It was created by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -12005,8 +12005,8 @@ fi # Define the identity of the package. - PACKAGE='mtrace' - VERSION='0.3' + PACKAGE='mtrace-ng' + VERSION='0.4' cat >>confdefs.h <<_ACEOF @@ -13844,7 +13844,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by mtrace $as_me 0.3, which was +This file was extended by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13910,7 +13910,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -mtrace config.status 0.3 +mtrace-ng config.status 0.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1 index e92a444..0351635 100644 --- a/autom4te.cache/output.1 +++ b/autom4te.cache/output.1 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for mtrace 0.3. +@%:@ Generated by GNU Autoconf 2.69 for mtrace-ng 0.4. @%:@ @%:@ Report bugs to . @%:@ @@ -588,10 +588,10 @@ MFLAGS= MAKEFLAGS= # Identity of this package. -PACKAGE_NAME='mtrace' -PACKAGE_TARNAME='mtrace' -PACKAGE_VERSION='0.3' -PACKAGE_STRING='mtrace 0.3' +PACKAGE_NAME='mtrace-ng' +PACKAGE_TARNAME='mtrace-ng' +PACKAGE_VERSION='0.4' +PACKAGE_STRING='mtrace-ng 0.4' PACKAGE_BUGREPORT='stefani@seibold.net' PACKAGE_URL='' @@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures mtrace 0.3 to adapt to many kinds of systems. +\`configure' configures mtrace-ng 0.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1377,7 +1377,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/mtrace@:>@ + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/mtrace-ng@:>@ --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1399,7 +1399,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of mtrace 0.3:";; + short | recursive ) echo "Configuration of mtrace-ng 0.4:";; esac cat <<\_ACEOF @@ -1518,7 +1518,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -mtrace configure 0.3 +mtrace-ng configure 0.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2124,7 +2124,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by mtrace $as_me 0.3, which was +It was created by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -12005,8 +12005,8 @@ fi # Define the identity of the package. - PACKAGE='mtrace' - VERSION='0.3' + PACKAGE='mtrace-ng' + VERSION='0.4' cat >>confdefs.h <<_ACEOF @@ -13844,7 +13844,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by mtrace $as_me 0.3, which was +This file was extended by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13910,7 +13910,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -mtrace config.status 0.3 +mtrace-ng config.status 0.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/autom4te.cache/output.2 b/autom4te.cache/output.2 index e92a444..0351635 100644 --- a/autom4te.cache/output.2 +++ b/autom4te.cache/output.2 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for mtrace 0.3. +@%:@ Generated by GNU Autoconf 2.69 for mtrace-ng 0.4. @%:@ @%:@ Report bugs to . @%:@ @@ -588,10 +588,10 @@ MFLAGS= MAKEFLAGS= # Identity of this package. -PACKAGE_NAME='mtrace' -PACKAGE_TARNAME='mtrace' -PACKAGE_VERSION='0.3' -PACKAGE_STRING='mtrace 0.3' +PACKAGE_NAME='mtrace-ng' +PACKAGE_TARNAME='mtrace-ng' +PACKAGE_VERSION='0.4' +PACKAGE_STRING='mtrace-ng 0.4' PACKAGE_BUGREPORT='stefani@seibold.net' PACKAGE_URL='' @@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures mtrace 0.3 to adapt to many kinds of systems. +\`configure' configures mtrace-ng 0.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1377,7 +1377,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/mtrace@:>@ + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/mtrace-ng@:>@ --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1399,7 +1399,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of mtrace 0.3:";; + short | recursive ) echo "Configuration of mtrace-ng 0.4:";; esac cat <<\_ACEOF @@ -1518,7 +1518,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -mtrace configure 0.3 +mtrace-ng configure 0.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2124,7 +2124,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by mtrace $as_me 0.3, which was +It was created by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -12005,8 +12005,8 @@ fi # Define the identity of the package. - PACKAGE='mtrace' - VERSION='0.3' + PACKAGE='mtrace-ng' + VERSION='0.4' cat >>confdefs.h <<_ACEOF @@ -13844,7 +13844,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by mtrace $as_me 0.3, which was +This file was extended by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13910,7 +13910,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -mtrace config.status 0.3 +mtrace-ng config.status 0.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/autom4te.cache/requests b/autom4te.cache/requests index 6fdd2ca..7e13d56 100644 --- a/autom4te.cache/requests +++ b/autom4te.cache/requests @@ -42,186 +42,186 @@ 'configure.ac' ], { - 'AM_PROG_LIBTOOL' => 1, - 'AM_MAINTAINER_MODE' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'AC_PROG_EGREP' => 1, - '_LT_AC_TAGVAR' => 1, - 'AM_RUN_LOG' => 1, - '_AM_PROG_TAR' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'LT_SUPPORTED_TAG' => 1, - '_LTDL_SETUP' => 1, - 'AM_PROG_LD' => 1, - '_AM_IF_OPTION' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'LT_PATH_LD' => 1, - '_LT_LINKER_OPTION' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'AC_LIB_LTDL' => 1, - 'AM_DEP_TRACK' => 1, - '_LT_AC_SYS_COMPILER' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'LT_PATH_NM' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_DEFUN' => 1, - 'LT_WITH_LTDL' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'LT_LIB_DLLOAD' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'LT_AC_PROG_RC' => 1, - 'AC_ENABLE_SHARED' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - '_LT_AC_LOCK' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AC_PATH_MAGIC' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - '_LT_AC_LANG_CXX' => 1, - 'AC_CHECK_LIBM' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'AC_PROG_NM' => 1, - 'AU_DEFUN' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'AM_SILENT_RULES' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - 'AM_SANITY_CHECK' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - 'AM_CONDITIONAL' => 1, - '_LT_LINKER_BOILERPLATE' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + '_LT_AC_TAGVAR' => 1, 'LT_OUTPUT' => 1, - 'LT_LIB_M' => 1, - '_AM_SET_OPTION' => 1, - '_LT_PROG_LTMAIN' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'LT_SYS_SYMBOL_USCORE' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - '_LT_CC_BASENAME' => 1, - 'AC_WITH_LTDL' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AC_DISABLE_STATIC' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AC_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AC_LTDL_SHLIBEXT' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AC_LIBTOOL_SETUP' => 1, - '_LT_PROG_FC' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'LT_SYS_MODULE_PATH' => 1, - 'LT_PROG_GCJ' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'm4_pattern_forbid' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'LT_INIT' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'LT_LANG' => 1, - 'LT_AC_PROG_EGREP' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - '_LT_PROG_CXX' => 1, - 'm4_include' => 1, - 'LT_FUNC_ARGZ' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AM_SET_DEPDIR' => 1, - 'AM_MISSING_PROG' => 1, - 'LT_SYS_MODULE_EXT' => 1, - 'AM_ENABLE_STATIC' => 1, - 'LTOPTIONS_VERSION' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, - '_LT_AC_LANG_F77' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'AM_PROG_NM' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, 'LTVERSION_VERSION' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'include' => 1, - 'LTSUGAR_VERSION' => 1, - 'AM_SUBST_NOTMAKE' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - '_LT_PROG_F77' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AC_DISABLE_SHARED' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - '_LT_WITH_SYSROOT' => 1, - 'LTDL_INIT' => 1, - 'LT_PROG_RC' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'AM_DISABLE_SHARED' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'LT_AC_PROG_SED' => 1, - '_LT_LIBOBJ' => 1, - 'LTOBSOLETE_VERSION' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, - 'LT_PROG_GO' => 1, - 'AC_LTDL_SHLIBPATH' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AC_LTDL_SYSSEARCHPATH' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, '_AM_MANGLE_OPTION' => 1, + '_AM_PROG_CC_C_O' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AM_RUN_LOG' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, '_LT_DLL_DEF_P' => 1, - 'm4_pattern_allow' => 1, - 'AC_LTDL_DLLIB' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - 'LTDL_INSTALLABLE' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'LT_WITH_LTDL' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + '_LT_COMPILER_OPTION' => 1, + 'LTSUGAR_VERSION' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'LT_PATH_LD' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_PROG_LD' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_PROG_EGREP' => 1, + '_LT_AC_SYS_COMPILER' => 1, 'LT_CMD_MAX_LEN' => 1, - '_AM_SUBST_NOTMAKE' => 1, + 'LTDL_INIT' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_ENABLE_SHARED' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AM_SUBST_NOTMAKE' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LTDL_SETUP' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'LT_PROG_GO' => 1, + 'AM_DISABLE_STATIC' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AM_PROG_LIBTOOL' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'LT_FUNC_ARGZ' => 1, + '_LT_LIBOBJ' => 1, + 'm4_pattern_forbid' => 1, + 'AM_DISABLE_SHARED' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + '_LT_PROG_F77' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'AM_PROG_NM' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + '_LT_LINKER_OPTION' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_DISABLE_SHARED' => 1, + 'LT_PROG_GCJ' => 1, + 'AM_ENABLE_SHARED' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + '_LT_AC_LOCK' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AC_CHECK_LIBM' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'AU_DEFUN' => 1, + '_AM_SET_OPTIONS' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'LT_AC_PROG_SED' => 1, + 'AC_DEFUN_ONCE' => 1, + 'AC_WITH_LTDL' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_SETUP' => 1, + '_LT_CC_BASENAME' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'LT_PROG_RC' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'LT_AC_PROG_RC' => 1, + 'AC_PROG_LD_GNU' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'm4_include' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'AM_PROG_INSTALL_SH' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'AC_DEFUN' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'm4_pattern_allow' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + '_AM_AUTOCONF_VERSION' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AM_SET_DEPDIR' => 1, + '_AM_SET_OPTION' => 1, + 'AM_ENABLE_STATIC' => 1, + 'AC_PROG_NM' => 1, + '_LT_AC_LANG_F77' => 1, + '_LT_PROG_CXX' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, 'AC_LIBTOOL_FC' => 1, + '_LT_PROG_LTMAIN' => 1, + 'LTOPTIONS_VERSION' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AM_SET_LEADING_DOT' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + '_AM_PROG_TAR' => 1, + 'include' => 1, + 'AC_PATH_MAGIC' => 1, + '_LT_PROG_FC' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'LT_LIB_DLLOAD' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'LT_LANG' => 1, + 'AC_LIB_LTDL' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'AM_MISSING_PROG' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_PROG_LIBTOOL' => 1, '_m4_warn' => 1, 'AC_PROG_LD' => 1, - '_AM_SET_OPTIONS' => 1, - 'AC_LTDL_OBJDIR' => 1, + 'LT_PATH_NM' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, 'AC_LIBTOOL_CONFIG' => 1, 'LT_SYS_DLSEARCH_PATH' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AM_MISSING_HAS_RUN' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AM_DEP_TRACK' => 1, + 'LTDL_INSTALLABLE' => 1, + 'LT_SYS_MODULE_PATH' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + '_AM_DEPENDENCIES' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AM_CONDITIONAL' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, 'AM_MAKE_INCLUDE' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'LTDL_CONVENIENCE' => 1, - 'AM_DISABLE_STATIC' => 1, + 'LT_INIT' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AM_MISSING_HAS_RUN' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'AC_DISABLE_STATIC' => 1, + '_AM_IF_OPTION' => 1, + 'AM_SANITY_CHECK' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AC_LIBTOOL_F77' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'AC_LIBTOOL_RC' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AC_LTDL_DLLIB' => 1, 'AC_LTDL_SYMBOL_USCORE' => 1, - 'LT_AC_PROG_GCJ' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1 + 'LTDL_CONVENIENCE' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'AM_PROG_CC_C_O' => 1, + '_LT_COMPILER_BOILERPLATE' => 1 } ], 'Autom4te::Request' ), bless( [ @@ -263,186 +263,186 @@ 'configure.ac' ], { - 'AM_DEP_TRACK' => 1, - '_LT_AC_SYS_COMPILER' => 1, - '_LT_LINKER_OPTION' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'AC_LIB_LTDL' => 1, - 'AM_PROG_INSTALL_SH' => 1, - '_LTDL_SETUP' => 1, - 'AM_PROG_LD' => 1, - '_AM_IF_OPTION' => 1, - 'LT_PATH_LD' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AM_RUN_LOG' => 1, - '_AM_PROG_TAR' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'AC_PROG_EGREP' => 1, - '_LT_AC_TAGVAR' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AM_PROG_LIBTOOL' => 1, - '_LT_AC_LOCK' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'LT_AC_PROG_RC' => 1, - 'AC_ENABLE_SHARED' => 1, - 'LT_LIB_DLLOAD' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'LT_WITH_LTDL' => 1, - 'AC_DEFUN' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'LT_PATH_NM' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AU_DEFUN' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'AC_PROG_NM' => 1, - 'AC_CHECK_LIBM' => 1, - '_LT_AC_LANG_CXX' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AC_PATH_MAGIC' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'AM_ENABLE_SHARED' => 1, - 'LT_OUTPUT' => 1, - '_AM_SET_OPTION' => 1, - 'LT_LIB_M' => 1, - '_LT_LINKER_BOILERPLATE' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'AM_CONDITIONAL' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_SANITY_CHECK' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, 'AC_LTDL_ENABLE_INSTALL' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'LT_SYS_SYMBOL_USCORE' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_LTDL_PREOPEN' => 1, - '_LT_PROG_LTMAIN' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - 'AC_WITH_LTDL' => 1, - '_LT_CC_BASENAME' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'LT_SYS_MODULE_PATH' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'LT_PROG_GCJ' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AC_LIBTOOL_SETUP' => 1, - '_LT_PROG_FC' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'AC_LTDL_SHLIBEXT' => 1, - 'AC_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AC_DISABLE_STATIC' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'LT_LANG' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'LT_AC_PROG_EGREP' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'LT_INIT' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'm4_pattern_forbid' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AM_ENABLE_STATIC' => 1, - 'LTOPTIONS_VERSION' => 1, - 'LT_SYS_MODULE_EXT' => 1, - 'AM_MISSING_PROG' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AM_SET_DEPDIR' => 1, - 'LT_FUNC_ARGZ' => 1, - 'm4_include' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - '_LT_PROG_CXX' => 1, - 'LTVERSION_VERSION' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'AM_PROG_NM' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, - '_LT_AC_LANG_F77' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - '_LT_PROG_F77' => 1, + 'LT_WITH_LTDL' => 1, 'AC_LTDL_DLSYM_USCORE' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, + '_LT_COMPILER_OPTION' => 1, 'LTSUGAR_VERSION' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'include' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - 'LT_PROG_RC' => 1, - '_LT_WITH_SYSROOT' => 1, - 'LTDL_INIT' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_DISABLE_SHARED' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'LT_PROG_GO' => 1, - 'AC_LTDL_SHLIBPATH' => 1, - 'LT_AC_PROG_SED' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_LIBOBJ' => 1, - 'LTOBSOLETE_VERSION' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'AM_DISABLE_SHARED' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AC_LTDL_DLLIB' => 1, - '_LT_DLL_DEF_P' => 1, - 'm4_pattern_allow' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - 'AC_LTDL_SYSSEARCHPATH' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - '_AM_SET_OPTIONS' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AC_PROG_LD' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_LIBTOOL_FC' => 1, - '_m4_warn' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'LT_CMD_MAX_LEN' => 1, - 'LTDL_INSTALLABLE' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'AC_LTDL_SYMBOL_USCORE' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'AM_DISABLE_STATIC' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'LT_PATH_LD' => 1, 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'LTDL_CONVENIENCE' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AM_MAKE_INCLUDE' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + '_LT_AC_TAGVAR' => 1, + 'LT_OUTPUT' => 1, + '_AM_MANGLE_OPTION' => 1, + 'LTVERSION_VERSION' => 1, + '_AM_PROG_CC_C_O' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AM_RUN_LOG' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + '_LT_DLL_DEF_P' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AM_SUBST_NOTMAKE' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LTDL_SETUP' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AM_DISABLE_STATIC' => 1, + 'LT_PROG_GO' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AM_PROG_LIBTOOL' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AM_PROG_LD' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AC_PROG_EGREP' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'LTDL_INIT' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AM_INIT_AUTOMAKE' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + '_LT_LINKER_OPTION' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AM_ENABLE_SHARED' => 1, + 'LT_PROG_GCJ' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + '_LT_AC_LOCK' => 1, 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AC_CHECK_LIBM' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'LT_FUNC_ARGZ' => 1, + '_LT_LIBOBJ' => 1, + 'm4_pattern_forbid' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'AM_DISABLE_SHARED' => 1, + '_LT_PROG_F77' => 1, + 'AM_PROG_NM' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'AC_LIBTOOL_SETUP' => 1, + '_LT_CC_BASENAME' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'LT_PROG_RC' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AU_DEFUN' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + '_AM_SET_OPTIONS' => 1, + 'LT_AC_PROG_SED' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'AC_DEFUN_ONCE' => 1, + 'AC_WITH_LTDL' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + '_AM_AUTOCONF_VERSION' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AM_SET_DEPDIR' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AM_MAINTAINER_MODE' => 1, + '_LT_AC_LANG_CXX' => 1, + '_AM_SET_OPTION' => 1, + 'AM_ENABLE_STATIC' => 1, + 'AC_PROG_NM' => 1, + '_LT_PROG_CXX' => 1, + '_LT_AC_LANG_F77' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_LIBTOOL_FC' => 1, + '_LT_PROG_LTMAIN' => 1, + 'LT_AC_PROG_RC' => 1, + 'AC_PROG_LD_GNU' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'm4_include' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'AC_DEFUN' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'm4_pattern_allow' => 1, + '_AM_PROG_TAR' => 1, + 'include' => 1, + 'AC_PATH_MAGIC' => 1, + '_LT_PROG_FC' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'LT_LIB_DLLOAD' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'LT_LANG' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'AC_LIB_LTDL' => 1, + 'AM_MISSING_PROG' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_m4_warn' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AC_PROG_LD' => 1, + 'LT_PATH_NM' => 1, + 'LTOPTIONS_VERSION' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'LT_INIT' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AC_LIBTOOL_CONFIG' => 1, 'LT_SYS_DLSEARCH_PATH' => 1, - 'AM_AUTOMAKE_VERSION' => 1 + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AM_DEP_TRACK' => 1, + 'LTDL_INSTALLABLE' => 1, + 'LT_SYS_MODULE_PATH' => 1, + '_AM_DEPENDENCIES' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AC_LIBTOOL_RC' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AC_LTDL_DLLIB' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'LTDL_CONVENIENCE' => 1, + 'AM_PROG_CC_C_O' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AM_MISSING_HAS_RUN' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AM_SANITY_CHECK' => 1, + '_AM_IF_OPTION' => 1 } ], 'Autom4te::Request' ), bless( [ @@ -457,65 +457,65 @@ 'configure.ac' ], { - '_AM_COND_ENDIF' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - 'include' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_FC_PP_SRCEXT' => 1, 'AC_FC_FREEFORM' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'AC_SUBST' => 1, + 'm4_include' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AM_PROG_CXX_C_O' => 1, 'AC_CONFIG_FILES' => 1, - '_AM_SUBST_NOTMAKE' => 1, - '_m4_warn' => 1, + 'm4_pattern_forbid' => 1, + 'AC_CONFIG_LINKS' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'm4_pattern_allow' => 1, + '_AM_COND_ENDIF' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'sinclude' => 1, + 'AC_CANONICAL_BUILD' => 1, 'AM_PROG_AR' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'AC_CONFIG_HEADERS' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_POT_TOOLS' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AM_XGETTEXT_OPTION' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + '_AM_COND_IF' => 1, + 'LT_INIT' => 1, + 'AM_PROG_F77_C_O' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'AC_SUBST_TRACE' => 1, + 'AM_PROG_MKDIR_P' => 1, 'AM_NLS' => 1, - 'AM_PROG_MOC' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + '_AM_COND_ELSE' => 1, + 'AC_INIT' => 1, + 'AC_FC_SRCEXT' => 1, + 'AM_PATH_GUILE' => 1, + 'AC_CANONICAL_HOST' => 1, + 'm4_sinclude' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, 'AH_OUTPUT' => 1, + 'AM_PROG_MOC' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'include' => 1, 'AC_LIBSOURCE' => 1, 'AM_AUTOMAKE_VERSION' => 1, - 'm4_pattern_forbid' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_CONDITIONAL' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'LT_INIT' => 1, - 'AC_SUBST' => 1, - 'AM_POT_TOOLS' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'm4_include' => 1, - 'AC_CANONICAL_BUILD' => 1, - '_AM_COND_IF' => 1, - 'AC_INIT' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AM_PATH_GUILE' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, 'AM_PROG_FC_C_O' => 1, - 'AM_PROG_F77_C_O' => 1, - 'm4_sinclude' => 1, - 'AC_CANONICAL_HOST' => 1, - '_AM_COND_ELSE' => 1, - 'sinclude' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AM_GNU_GETTEXT' => 1, - 'm4_pattern_allow' => 1, - 'AC_SUBST_TRACE' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AC_CANONICAL_TARGET' => 1 + '_AM_SUBST_NOTMAKE' => 1, + '_m4_warn' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_PROG_CC_C_O' => 1 } ], 'Autom4te::Request' ) ); diff --git a/autom4te.cache/traces.2 b/autom4te.cache/traces.2 index 632a77d..79a2df3 100644 --- a/autom4te.cache/traces.2 +++ b/autom4te.cache/traces.2 @@ -3,7 +3,7 @@ m4trace:aclocal.m4:1190: -1- m4_include([config/m4/ltoptions.m4]) m4trace:aclocal.m4:1191: -1- m4_include([config/m4/ltsugar.m4]) m4trace:aclocal.m4:1192: -1- m4_include([config/m4/ltversion.m4]) m4trace:aclocal.m4:1193: -1- m4_include([config/m4/lt~obsolete.m4]) -m4trace:configure.ac:27: -1- AC_INIT([mtrace], [0.3], [stefani@seibold.net]) +m4trace:configure.ac:27: -1- AC_INIT([mtrace-ng], [0.4], [stefani@seibold.net]) m4trace:configure.ac:27: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.ac:27: -1- m4_pattern_forbid([_AC_]) m4trace:configure.ac:27: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) diff --git a/backend.h b/backend.h index 70eb36d..6e050f1 100644 --- a/backend.h +++ b/backend.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * @@ -59,7 +59,7 @@ void trace_me(void); /* stop tracing a task. */ int untrace_task(struct task *task, int signum); -/* Called when mtrace needs to attach to task */ +/* Called when mtrace-ng needs to attach to task */ int trace_attach(struct task *task); /* wait for a task ready for tracing */ diff --git a/backtrace.h b/backtrace.h index 4ecb325..ad0b80c 100644 --- a/backtrace.h +++ b/backtrace.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/breakpoint.c b/breakpoint.c index 14643fe..d73c635 100644 --- a/breakpoint.c +++ b/breakpoint.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/breakpoint.h b/breakpoint.h index a9674e7..f993625 100644 --- a/breakpoint.h +++ b/breakpoint.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/client/Makefile.am b/client/Makefile.am index d93cb4b..75b93e3 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -1,4 +1,4 @@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or diff --git a/client/Makefile.in b/client/Makefile.in index ac325f7..69e65ae 100644 --- a/client/Makefile.in +++ b/client/Makefile.in @@ -14,7 +14,7 @@ @SET_MAKE@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or diff --git a/client/bfdinc.h b/client/bfdinc.h index b517c26..24078bd 100644 --- a/client/bfdinc.h +++ b/client/bfdinc.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/client/binfile.c b/client/binfile.c index 3d47394..47f2a49 100644 --- a/client/binfile.c +++ b/client/binfile.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -101,13 +101,14 @@ static void find_address_in_section(bfd *abfd, asection *section, void *data __a psi->found = bfd_find_nearest_line(abfd, section, psi->syms, psi->pc - vma, &psi->filename, &psi->functionname, &psi->line); } -struct rb_sym *bin_file_lookup(struct bin_file *binfile, bfd_vma addr, unsigned long off, const char *filename) +struct rb_sym *bin_file_lookup(struct bin_file *binfile, bfd_vma addr, unsigned long off) { struct sym_info si = { 0 }; char *sym_buf = NULL; struct rb_root *root = &binfile->sym_table; struct rb_node **new = &(root->rb_node), *parent = NULL; struct rb_sym *this; + unsigned int si_info = 0; if (!binfile) return NULL; @@ -137,45 +138,42 @@ struct rb_sym *bin_file_lookup(struct bin_file *binfile, bfd_vma addr, unsigned bfd_map_over_sections(binfile->abfd, find_address_in_section, &si); - if (!si.found) { - if (asprintf(&sym_buf, "%s", filename) == -1) - sym_buf = NULL; - } else { + if (si.found) { const char *name; + char *alloc = NULL; - do { - char *alloc = NULL; + if (sym_buf) + free(sym_buf); - name = si.functionname; - if (name == NULL || *name == '\0') { - if (asprintf(&alloc, "[0x%lx]", (unsigned long)addr) == -1) - name = "?"; - else - name = alloc; - } - else { - alloc = bfd_demangle(binfile->abfd, name, 27); - if (alloc != NULL) - name = alloc; - } - - if (sym_buf) - free(sym_buf); - - if (si.line) { - if (asprintf(&sym_buf, "%s:%u %s", si.filename ? si.filename : filename, si.line, name) == -1) - sym_buf = NULL; - } - else { - if (asprintf(&sym_buf, "%s %s", si.filename ? si.filename : filename, name) == -1) - sym_buf = NULL; - } + name = si.functionname; + if (!name || !*name) + name = "?"; + else { + alloc = bfd_demangle(binfile->abfd, name, 27); if (alloc) - free(alloc); + name = alloc; + } - si.found = bfd_find_inliner_info(binfile->abfd, &si.filename, &si.functionname, &si.line); - } while (si.found); + if (si.filename) { + if (si.line) { + if (asprintf(&sym_buf, "%s:%u %s", si.filename, si.line, name) == -1) + sym_buf = NULL; + else + si_info = 1; + } + else { + if (asprintf(&sym_buf, "%s %s", si.filename, name) == -1) + sym_buf = NULL; + else + si_info = 1; + } + } + else + sym_buf = strdup(name); + + if (alloc) + free(alloc); } this = malloc(sizeof(*this)); @@ -186,6 +184,7 @@ struct rb_sym *bin_file_lookup(struct bin_file *binfile, bfd_vma addr, unsigned this->sym = sym_buf; this->refcnt = 1; this->binfile = binfile; + this->si_info = si_info; ++binfile->refcnt; @@ -196,7 +195,7 @@ struct rb_sym *bin_file_lookup(struct bin_file *binfile, bfd_vma addr, unsigned return this; } -struct bin_file *bin_file_open(const char *filename) +struct bin_file *bin_file_open(const char *filename, const char *mapname) { char **matching; struct bin_file *binfile; @@ -219,6 +218,7 @@ struct bin_file *bin_file_open(const char *filename) return NULL; binfile->filename = strdup(filename); + binfile->mapname = strdup(mapname); binfile->refcnt = 1; binfile->sym_table = RB_ROOT; binfile->abfd = bfd_openr(binfile->filename, NULL); @@ -242,6 +242,7 @@ error: if (binfile->abfd) bfd_close(binfile->abfd); free(binfile->filename); + free(binfile->mapname); free(binfile); return NULL; @@ -267,6 +268,7 @@ void bin_file_put(struct bin_file *binfile) bfd_close(binfile->abfd); free(binfile->filename); + free(binfile->mapname); free(binfile); } } diff --git a/client/binfile.h b/client/binfile.h index 7f3645a..0d06cec 100644 --- a/client/binfile.h +++ b/client/binfile.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -33,6 +33,7 @@ struct rb_sym { char *sym; struct bin_file *binfile; unsigned long refcnt; + unsigned int si_info; }; struct bin_file { @@ -42,12 +43,13 @@ struct bin_file { struct rb_root sym_table; unsigned long refcnt; char *filename; + char *mapname; }; -struct bin_file *bin_file_open(const char *filename); +struct bin_file *bin_file_open(const char *filename, const char *mapname); void bin_file_put(struct bin_file *binfile); void bin_file_get(struct bin_file *binfile); -struct rb_sym *bin_file_lookup(struct bin_file *binfile, bfd_vma addr, unsigned long off, const char *filename); +struct rb_sym *bin_file_lookup(struct bin_file *binfile, bfd_vma addr, unsigned long off); void bin_file_sym_get(struct rb_sym *sym); void bin_file_sym_put(struct rb_sym *sym); diff --git a/client/client.c b/client/client.c index 727851b..f74eed6 100644 --- a/client/client.c +++ b/client/client.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/client/client.h b/client/client.h index 0697d1b..a53cb99 100644 --- a/client/client.h +++ b/client/client.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/client/dump.c b/client/dump.c index 8eaf451..f5ad268 100644 --- a/client/dump.c +++ b/client/dump.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/client/dump.h b/client/dump.h index 1b6fa8f..59dac51 100644 --- a/client/dump.h +++ b/client/dump.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/client/job.c b/client/job.c index 6b2756a..cc73075 100644 --- a/client/job.c +++ b/client/job.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -44,11 +44,11 @@ void leaks_scan(struct process *process, int mode) client_wait_op(MT_SCAN); } -void dump_stacks(struct process *process, void (*dump)(struct process *process, const char *outfile), const char *outfile) +void dump_stacks(struct process *process, void (*dump)(struct process *process, const char *outfile, int lflag), const char *outfile, int lflag) { if (!process->n_allocations) return; - dump(process, outfile); + dump(process, outfile, lflag); } diff --git a/client/job.h b/client/job.h index 29fdb69..4e62127 100644 --- a/client/job.h +++ b/client/job.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -26,6 +26,6 @@ struct process; void leaks_scan(struct process *process, int mode); -void dump_stacks(struct process *process, void (*dump)(struct process *process, const char *outfile), const char *outfile); +void dump_stacks(struct process *process, void (*dump)(struct process *process, const char *outfile, int lflag), const char *outfile, int lflag); #endif diff --git a/client/process.c b/client/process.c index 013ae1b..75f3111 100644 --- a/client/process.c +++ b/client/process.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -310,7 +310,7 @@ static struct map *open_map(struct process *process, bfd_vma addr) } if (!access(realpath, R_OK)) - map->binfile = bin_file_open(realpath); + map->binfile = bin_file_open(realpath, map->filename); free(realpath); @@ -335,20 +335,22 @@ static struct rb_sym *resolv_address(struct process *process, bfd_vma addr) struct rb_sym *sym; struct map *map = open_map(process, addr); - if (!map) + if (map) { + sym = bin_file_lookup(map->binfile, addr, map->addr); + if (sym) + return sym; + } + + sym = malloc(sizeof(*sym)); + if (!sym) return NULL; - sym = bin_file_lookup(map->binfile, addr, map->addr, map->filename); - if (!sym) { - sym = malloc(sizeof(*sym)); - if (!sym) - return NULL; + sym->addr = addr; + sym->sym = strdup(map->filename); + sym->refcnt = 1; + sym->binfile = NULL; + sym->si_info = 0; - sym->addr = addr; - sym->sym = strdup(map->filename); - sym->refcnt = 1; - sym->binfile = NULL; - } return sym; } @@ -376,7 +378,7 @@ static void stack_resolv(struct process *process, struct stack *stack) struct regex_list *p; for(p = regex_ignore_list; p; p = p->next) - if (stack->syms[i] && !regexec(&p->re, stack->syms[i]->sym, 0, NULL, 0)) { + if (stack->syms[i] && stack->syms[i]->sym && !regexec(&p->re, stack->syms[i]->sym, 0, NULL, 0)) { stack->ignore = 1; break; } @@ -514,7 +516,7 @@ static struct rb_stack *stack_add(struct process *process, pid_t pid, void *addr return this; } -static void process_dump_stack(struct process *process, struct rb_stack *this) +static void process_dump_stack(struct process *process, struct rb_stack *this, int lflag) { uint32_t i; void *addrs; @@ -524,7 +526,26 @@ static void process_dump_stack(struct process *process, struct rb_stack *this) return; for(addrs = stack->addrs, i = 0; i < stack->entries; ++i) { - if (dump_printf(" [0x%lx] %s\n", process->get_ulong(addrs), stack->syms[i] ? stack->syms[i]->sym : "?") == -1) + if (dump_printf(" [0x%lx]", process->get_ulong(addrs))) + return; + + if (!stack->syms[i]) { + if (dump_printf(" ?") == -1) + return; + } + else { + if (((lflag && stack->syms[i]->si_info) || !stack->syms[i]->si_info) && stack->syms[i]->binfile) { + if (dump_printf(" %s", stack->syms[i]->binfile->mapname) == -1) + return; + } + + if (stack->syms[i]->sym) { + if (dump_printf(" %s", stack->syms[i]->sym) == -1) + return; + } + } + + if (dump_printf("\n") == -1) return; addrs += process->ptr_size; @@ -918,7 +939,7 @@ static int sort_total(const struct rb_stack **p, const struct rb_stack **q) return sort_allocations(p, q); } -static void _process_dump(struct process *process, int (*sortby)(const struct rb_stack **, const struct rb_stack **), int (*skipfunc)(struct rb_stack *), FILE *file) +static void _process_dump(struct process *process, int (*sortby)(const struct rb_stack **, const struct rb_stack **), int (*skipfunc)(struct rb_stack *), FILE *file, int lflag) { struct rb_stack **arr; unsigned long i; @@ -990,7 +1011,7 @@ static void _process_dump(struct process *process, int (*sortby)(const struct rb if (dump_printf(" tsc: %llu\n", stack->tsc) == -1) break; - process_dump_stack(process, stack); + process_dump_stack(process, stack, lflag); } } free(arr); @@ -999,10 +1020,10 @@ skip: return; } -static void process_dump(struct process *process, int (*sortby)(const struct rb_stack **, const struct rb_stack **), int (*skipfunc)(struct rb_stack *), const char *outfile) +static void process_dump(struct process *process, int (*sortby)(const struct rb_stack **, const struct rb_stack **), int (*skipfunc)(struct rb_stack *), const char *outfile, int lflag) { if (!outfile) - _process_dump(process, sortby, skipfunc, NULL); + _process_dump(process, sortby, skipfunc, NULL, lflag); else { FILE *file = fopen(outfile, "w"); @@ -1010,7 +1031,7 @@ static void process_dump(struct process *process, int (*sortby)(const struct rb_ fprintf(stderr, "could not open `%s' for output!\n", outfile); return; } - _process_dump(process, sortby, skipfunc, file); + _process_dump(process, sortby, skipfunc, file, lflag); fclose(file); } @@ -1036,49 +1057,49 @@ static int skip_zero_leaks(struct rb_stack *stack) return !stack->leaks; } -void process_dump_sort_average(struct process *process, const char *outfile) +void process_dump_sort_average(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_average, skip_zero_allocations, outfile); + process_dump(process, sort_average, skip_zero_allocations, outfile, lflag); } -void process_dump_sort_usage(struct process *process, const char *outfile) +void process_dump_sort_usage(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_usage, skip_zero_allocations, outfile); + process_dump(process, sort_usage, skip_zero_allocations, outfile, lflag); } -void process_dump_sort_leaks(struct process *process, const char *outfile) +void process_dump_sort_leaks(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_leaks, skip_zero_leaks, outfile); + process_dump(process, sort_leaks, skip_zero_leaks, outfile, lflag); } -void process_dump_sort_bytes_leaked(struct process *process, const char *outfile) +void process_dump_sort_bytes_leaked(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_bytes_leaked, skip_zero_leaks, outfile); + process_dump(process, sort_bytes_leaked, skip_zero_leaks, outfile, lflag); } -void process_dump_sort_allocations(struct process *process, const char *outfile) +void process_dump_sort_allocations(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_allocations, skip_zero_allocations, outfile); + process_dump(process, sort_allocations, skip_zero_allocations, outfile, lflag); } -void process_dump_sort_total(struct process *process, const char *outfile) +void process_dump_sort_total(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_total, skip_zero_allocations, outfile); + process_dump(process, sort_total, skip_zero_allocations, outfile, lflag); } -void process_dump_sort_tsc(struct process *process, const char *outfile) +void process_dump_sort_tsc(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_tsc, skip_zero_allocations, outfile); + process_dump(process, sort_tsc, skip_zero_allocations, outfile, lflag); } -void process_dump_sort_mismatched(struct process *process, const char *outfile) +void process_dump_sort_mismatched(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_mismatched, skip_non_mismatched, outfile); + process_dump(process, sort_mismatched, skip_non_mismatched, outfile, lflag); } -void process_dump_stacks(struct process *process, const char *outfile) +void process_dump_stacks(struct process *process, const char *outfile, int lflag) { - process_dump(process, sort_allocations, skip_none, outfile); + process_dump(process, sort_allocations, skip_none, outfile, lflag); } void *process_scan(struct process *process, void *leaks, uint32_t payload_len) @@ -1406,31 +1427,31 @@ void process_dump_sortby(struct process *process) { switch(options.sort_by) { case OPT_SORT_AVERAGE: - _process_dump(process, sort_average, skip_zero_allocations, options.output); + _process_dump(process, sort_average, skip_zero_allocations, options.output, options.lflag); break; case OPT_SORT_BYTES_LEAKED: - _process_dump(process, sort_bytes_leaked, skip_zero_leaks, options.output); + _process_dump(process, sort_bytes_leaked, skip_zero_leaks, options.output, options.lflag); break; case OPT_SORT_LEAKS: - _process_dump(process, sort_leaks, skip_zero_leaks, options.output); + _process_dump(process, sort_leaks, skip_zero_leaks, options.output, options.lflag); break; case OPT_SORT_STACKS: - _process_dump(process, sort_allocations, skip_none, options.output); + _process_dump(process, sort_allocations, skip_none, options.output, options.lflag); break; case OPT_SORT_TOTAL: - _process_dump(process, sort_total, skip_none, options.output); + _process_dump(process, sort_total, skip_none, options.output, options.lflag); break; case OPT_SORT_TSC: - _process_dump(process, sort_tsc, skip_zero_allocations, options.output); + _process_dump(process, sort_tsc, skip_zero_allocations, options.output, options.lflag); break; case OPT_SORT_USAGE: - _process_dump(process, sort_usage, skip_zero_allocations, options.output); + _process_dump(process, sort_usage, skip_zero_allocations, options.output, options.lflag); break; case OPT_SORT_MISMATCHED: - _process_dump(process, sort_mismatched, skip_non_mismatched, options.output); + _process_dump(process, sort_mismatched, skip_non_mismatched, options.output, options.lflag); break; default: - _process_dump(process, sort_allocations, skip_zero_allocations, options.output); + _process_dump(process, sort_allocations, skip_zero_allocations, options.output, options.lflag); break; } } diff --git a/client/process.h b/client/process.h index 09789ff..5c886aa 100644 --- a/client/process.h +++ b/client/process.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -102,15 +102,15 @@ void process_detach(struct process *process); unsigned long process_leaks_scan(struct process *process, int mode); void process_dump_sortby(struct process *process); -void process_dump_sort_average(struct process *process, const char *outfile); -void process_dump_sort_usage(struct process *process, const char *outfile); -void process_dump_sort_leaks(struct process *process, const char *outfile); -void process_dump_sort_bytes_leaked(struct process *process, const char *outfile); -void process_dump_sort_allocations(struct process *process, const char *outfile); -void process_dump_sort_total(struct process *process, const char *outfile); -void process_dump_sort_tsc(struct process *process, const char *outfile); -void process_dump_sort_mismatched(struct process *process, const char *outfile); -void process_dump_stacks(struct process *process, const char *outfile); +void process_dump_sort_average(struct process *process, const char *outfile, int lflag); +void process_dump_sort_usage(struct process *process, const char *outfile, int lflag); +void process_dump_sort_leaks(struct process *process, const char *outfile, int lflag); +void process_dump_sort_bytes_leaked(struct process *process, const char *outfile, int lflag); +void process_dump_sort_allocations(struct process *process, const char *outfile, int lflag); +void process_dump_sort_total(struct process *process, const char *outfile, int lflag); +void process_dump_sort_tsc(struct process *process, const char *outfile, int lflag); +void process_dump_sort_mismatched(struct process *process, const char *outfile, int lflag); +void process_dump_stacks(struct process *process, const char *outfile, int lflag); void add_ignore_regex(regex_t *re); diff --git a/client/readline.c b/client/readline.c index 60b10f5..a6d1c27 100644 --- a/client/readline.c +++ b/client/readline.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -44,7 +44,7 @@ #include "options.h" #include "process.h" -#define PROGNAME "memtrace" +#define PROGNAME "mtrace" struct cmd_opt { const char *name; @@ -125,7 +125,7 @@ static struct cmd_opt cmds[] = { 1, do_dump, "dump stack trees", - "[sort-by] [] [>filename]", + "[sort-by] [] [-l] [>filename]", dump_opts }, { @@ -560,8 +560,10 @@ static int do_dump(struct cmd_opt *cmd, int argc, const char *argv[]) struct cmd_opt *options = cmd->options;; unsigned int i; void *data; + int arg = 1; + int lflag = 0; - if (!argv[1]) { + if (!argv[arg]) { process = client_first_process(); if (!process) { fprintf(stderr, "no process available\n"); @@ -571,17 +573,18 @@ static int do_dump(struct cmd_opt *cmd, int argc, const char *argv[]) } else { data = NULL; - len = strlen(argv[1]); + len = strlen(argv[arg]); for(i = 0; options[i].name; ++i) { if (options[i].match_len <= len && !strncmp(options[i].name, argv[1], len)) { data = options[i].data; + arg++; break; } } if (!data) { - process = client_find_process(atoi(argv[1])); + process = client_find_process(atoi(argv[arg++])); if (!process) { fprintf(stderr, "%s: unknown sort criteria\n", cmd->name); return -1; @@ -589,13 +592,18 @@ static int do_dump(struct cmd_opt *cmd, int argc, const char *argv[]) data = process_dump_sort_allocations; } else { - process = get_process(argv[2]); + process = get_process(argv[arg++]); if (!process) return -1; } + + if (argc < arg) { + if (!strcmp(argv[arg], "-l")) + lflag = 1; + } } - dump_stacks(process, data, outfile); + dump_stacks(process, data, outfile, lflag); return 0; } diff --git a/client/readline.h b/client/readline.h index 459713a..1e6c648 100644 --- a/client/readline.h +++ b/client/readline.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/common.c b/common.c index e900706..ec89ac4 100644 --- a/common.c +++ b/common.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/common.h b/common.h index 7964aca..dd26368 100644 --- a/common.h +++ b/common.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/configure b/configure index 9629c97..8862f3a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for mtrace 0.3. +# Generated by GNU Autoconf 2.69 for mtrace-ng 0.4. # # Report bugs to . # @@ -588,10 +588,10 @@ MFLAGS= MAKEFLAGS= # Identity of this package. -PACKAGE_NAME='mtrace' -PACKAGE_TARNAME='mtrace' -PACKAGE_VERSION='0.3' -PACKAGE_STRING='mtrace 0.3' +PACKAGE_NAME='mtrace-ng' +PACKAGE_TARNAME='mtrace-ng' +PACKAGE_VERSION='0.4' +PACKAGE_STRING='mtrace-ng 0.4' PACKAGE_BUGREPORT='stefani@seibold.net' PACKAGE_URL='' @@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures mtrace 0.3 to adapt to many kinds of systems. +\`configure' configures mtrace-ng 0.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1377,7 +1377,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/mtrace] + --docdir=DIR documentation root [DATAROOTDIR/doc/mtrace-ng] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1399,7 +1399,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of mtrace 0.3:";; + short | recursive ) echo "Configuration of mtrace-ng 0.4:";; esac cat <<\_ACEOF @@ -1518,7 +1518,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -mtrace configure 0.3 +mtrace-ng configure 0.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2124,7 +2124,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by mtrace $as_me 0.3, which was +It was created by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -12005,8 +12005,8 @@ fi # Define the identity of the package. - PACKAGE='mtrace' - VERSION='0.3' + PACKAGE='mtrace-ng' + VERSION='0.4' cat >>confdefs.h <<_ACEOF @@ -13844,7 +13844,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by mtrace $as_me 0.3, which was +This file was extended by mtrace-ng $as_me 0.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13910,7 +13910,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -mtrace config.status 0.3 +mtrace-ng config.status 0.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 4f8f018..8841a84 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ # -*- Autoconf -*- -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # Copyright (C) 2010,2013 Petr Machata, Red Hat Inc. # Copyright (C) 2010,2011 Joe Damato @@ -24,7 +24,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.65) -AC_INIT([mtrace],[0.3],[stefani@seibold.net]) +AC_INIT([mtrace-ng],[0.4],[stefani@seibold.net]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR(main.c) AC_CONFIG_MACRO_DIR([config/m4]) diff --git a/debug.c b/debug.c index 7f2b77a..d89d05a 100644 --- a/debug.c +++ b/debug.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/debug.h b/debug.h index 6bbc1ed..b243e53 100644 --- a/debug.h +++ b/debug.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/dict.c b/dict.c index 225e86f..ff19789 100644 --- a/dict.c +++ b/dict.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/dict.h b/dict.h index 830ce5c..3ecad6d 100644 --- a/dict.h +++ b/dict.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/dwarf.c b/dwarf.c index a1b7440..4571130 100644 --- a/dwarf.c +++ b/dwarf.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the libunwind source * diff --git a/dwarf.h b/dwarf.h index 5b8acaa..b85c9b8 100644 --- a/dwarf.h +++ b/dwarf.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the libunwind source * diff --git a/event.c b/event.c index cb78a3d..1e414e4 100644 --- a/event.c +++ b/event.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/event.h b/event.h index a825317..f7b2ef4 100644 --- a/event.h +++ b/event.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/forward.h b/forward.h index 0b1789e..067031b 100644 --- a/forward.h +++ b/forward.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/library.c b/library.c index 64806df..cd93564 100644 --- a/library.c +++ b/library.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/library.h b/library.h index 4c1ca7d..7ba7981 100644 --- a/library.h +++ b/library.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/list.h b/list.h index 97689b7..996933a 100644 --- a/list.h +++ b/list.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on linux kernel list.h * diff --git a/main.c b/main.c index 2f31f98..36820ae 100644 --- a/main.c +++ b/main.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/main.h b/main.h index 3c1698b..8e24132 100644 --- a/main.h +++ b/main.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/memtrace.h b/memtrace.h index 48ddbbb..0b9770c 100644 --- a/memtrace.h +++ b/memtrace.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/mtelf.c b/mtelf.c index 1a3b788..c9fece1 100644 --- a/mtelf.c +++ b/mtelf.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/mtelf.h b/mtelf.h index 0ceb1b2..0578525 100644 --- a/mtelf.h +++ b/mtelf.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/mtrace.1 b/mtrace-ng.1 similarity index 90% rename from mtrace.1 rename to mtrace-ng.1 index 0083e53..dd184e6 100644 --- a/mtrace.1 +++ b/mtrace-ng.1 @@ -18,13 +18,13 @@ .\" .TH MTRACE "12" "Oct 2015" "" "User Commands" .SH NAME -mtrace \- A dynamic memory allocation tracer +mtrace-ng \- A dynamic memory allocation tracer .SH SYNOPSIS .\" .\" --------------------------------------------------------------------------- .\" .PP -.BR mtrace " \-t|\-\-trace +.BR mtrace-ng " \-t|\-\-trace .\" .\" Output formatting: .\" @@ -58,7 +58,7 @@ mtrace \- A dynamic memory allocation tracer .\" --------------------------------------------------------------------------- .\" .PP -.BR mtrace " \-t|\-\-trace \-r|\-\-remote \fIaddr\fR" +.BR mtrace-ng " \-t|\-\-trace \-r|\-\-remote \fIaddr\fR" [\-P|\-\-port \fInum\fR] [\-w|\-\-wait] .\" @@ -88,7 +88,7 @@ mtrace \- A dynamic memory allocation tracer .\" --------------------------------------------------------------------------- .\" .PP -.BR mtrace +.BR mtrace-ng [\-r|\-\-remote \fIaddr\fR] [\-P|\-\-port \fInum\fR] .\" @@ -110,11 +110,11 @@ mtrace \- A dynamic memory allocation tracer .\" --------------------------------------------------------------------------- .\" .PP -.BR mtrace " \-V|\-\-version" +.BR mtrace-ng " \-V|\-\-version" .PP -.BR mtrace " \-h|\-\-help" +.BR mtrace-ng " \-h|\-\-help" .SH DESCRIPTION -.B mtrace +.B mtrace-ng is a dynamic memory tracer, debugger and statistical analyses tool for C and C++. It traces, records and reports all dynamic memory functions which are called by the specified @@ -122,7 +122,7 @@ called by the specified or .I process until it exits or -.B mtrace +.B mtrace-ng is terminated. Unlike other memory tracers, the trace will be performed by setting @@ -130,7 +130,7 @@ breakpoints on each know dynamic allocation function. So no additional library nor any kind of instrumentation or recompiling is needed to trace and hunt for memory leaks. -.B mtrace +.B mtrace-ng is able to find no longer referenced memory allocation by scanning all writable memory mappings of the program against the pointer of an allocation. If the memory address will be not found during a scan there is a high change @@ -166,36 +166,36 @@ void operator delete[](void* p, const std::nothrow_t& nt) __THROW .fi .in .PP -.B mtrace +.B mtrace-ng offers three different kind of working modes. A non interactive mode, a server mode and a interactive client mode. The most common mode is the non interactive mode, which allows to run and/or attach to a process, similar to strace. -.B mtrace +.B mtrace-ng will show all open allocations when the traced program exists or -.B mtrace +.B mtrace-ng will be terminated. For system with memory restrictions or for using in a cross architecture environment, -.B mtrace +.B mtrace-ng offers a server mode which moves the memory bookkeeping and address resolution outside to a connected client. In this case the server must be started on target system where the program is executed. Then the client has to be started on the remote host system. To get a more detailed information about the dynamic memory consumption -.B mtrace +.B mtrace-ng can be started in an interactive mode. This mode is available for client mode or when attaching to a process. See the section \fBINTERACTIVE MODE\fR to learn more about the interactive commands in -\fBmtrace\fR. +\fBmtrace-ng\fR. .SH OPTIONS .PP .IP "\-a, \-\-autoscan" Scan all writeable memory mappings of the process for leaked pointers on exit -of the traced program or termination of \fBmtrace\fR. If the pointer value of an +of the traced program or termination of \fBmtrace-ng\fR. If the pointer value of an open allocated memory block will be not found on any aligned memory addresses, it will be marked and reported as leaked. The scan can take some time, depending on the size of the writeable memory mappings and the number of open @@ -212,16 +212,16 @@ by passing more than one \-b option. This option is valid in any mode except the client mode. Its used for locating libraries for an attached process which are linked with relative paths. In this case -.B mtrace +.B mtrace-ng does not know the origin state of the current working directory and need to manually add this information. .IP "\-D, \-\-debug \fImask\fR" Show debugging output of -.B mtrace +.B mtrace-ng itself. \fImask\fR is a number describing which debug messages should be displayed. Use the \-Dh option to see what can be used. This option is only available when -.B mtrace +.B mtrace-ng was build with --enable-debug. .IP "\-d, \-\-depth \fIlevel\fR" Do backtrace of \fIlevel\fR stack frames for each memory allocation function. @@ -233,23 +233,23 @@ Trace child processes as they are created by one of the currently traced processes as a result of the fork(2) system call. .IP "\-F, \-\-config \fIpath" Set the config file. For a detailed description of this file see -mtrace.conf(5). It is possible to pass several config files by passing more +mtrace-ng.conf(5). It is possible to pass several config files by passing more than one \-F option. If no -F is given, -.B mtrace +.B mtrace-ng will look up for one of the default files in the following order: -$HOME/.mtrace, -$XDG_CONFIG_HOME/mtrace, -SYSCONFDIR/mtrace.conf, -/etc/mtrace.conf +$HOME/.mtrace-ng, +$XDG_CONFIG_HOME/mtrace-ng, +SYSCONFDIR/mtrace-ng.conf, +/etc/mtrace-ng.conf .IP "\-h, \-\-help" -Show a summary of the options to \fBmtrace\fR and exit. +Show a summary of the options to \fBmtrace-ng\fR and exit. .IP "\-i, \-\-interactive" Enables the interactive mode for client or when attaching to a process. See the section \fBINTERACTIVE MODE\fR to learn more about the interactive commands in this mode. .IP "\-k, \-\-kill" -Kill \fBmtrace\fR in case of a bookkeeping error. This options is intended for -.B mtrace +Kill \fBmtrace-ng\fR in case of a bookkeeping error. This options is intended for +.B mtrace-ng development only! .IP "\-O, \-\-omit \fIfilename" Do not place any dynamic memory interception breakpoints in the given file. @@ -281,10 +281,10 @@ It is possible to attach to several processes by passing more than one .IP "\-P, \-\-port \fInum" Set the port number for client or server mode. The default port number is 4576. .IP "\-r, \-\-remote \fIaddr" -Run \fBmtrace\fR in remote mode. Use \fIaddr\fR as socket path or address. If +Run \fBmtrace-ng\fR in remote mode. Use \fIaddr\fR as socket path or address. If \fIaddr\fR begins with / or . it will assumed a named socket, otherwise it will be passed to getaddrinfo(3), which handles any kind of hostname, IPv4 or -IPv6 addresses. If this option is passed in conjunction with -t, mtrace will be +IPv6 addresses. If this option is passed in conjunction with -t, mtrace-ng will be execute in server mode, otherwise in client mode. .IP "\-s, \-\-sortby keyword" Sort the output of the stack backtraces by keyword. Valid keywords are: @@ -344,12 +344,12 @@ Sort by number of bytes in use of all open allocations. .RE .RE .IP "\-S, \-\-sanity" -Check mismatching operations against new/new[] allocations. This options also +Check mismatching operations against new/delete. This options also sets the sort-by options to mismatched. .IP "\-t, \-\-trace" -Run \fBmtrace\fR in trace mode. In this mode all attached processes will run under -the control of \fBmtrace\fR and all dynamic memory function calls will be traced. -If this options is not given, \fBmtrace\fR will run in client mode. +Run \fBmtrace-ng\fR in trace mode. In this mode all attached processes will run under +the control of \fBmtrace-ng\fR and all dynamic memory function calls will be traced. +If this options is not given, \fBmtrace-ng\fR will run in client mode. .IP "\-u, \-\-user \fIusername\fR" Run command with the userid, groupid and supplementary groups of .IR username . @@ -359,7 +359,7 @@ correct execution of setuid and/or setgid binaries. Be verbose and display more details about what going on. This option can be repeated for a more detailed view. .IP "\-V, \-\-version" -Show the version number of \fBmtrace\fR and exit. +Show the version number of \fBmtrace-ng\fR and exit. .IP "\-w, \-\-wait" This option stops the execution of the traced processes until a client is connected to the server. So this option is only valid in server mode. @@ -425,7 +425,7 @@ Shows the list of currently traced processes. .IP "quit" Close the client connection and exit the -.B mtrace +.B mtrace-ng debugger. .IP "reset \fIpid\fR" @@ -494,17 +494,17 @@ for more open issues. If you would like to report a bug, send a mail to stefani@seibold.net .SH FILES .TP -.I /etc/mtrace.conf\fR or \fISYSCONFDIR/mtrace.conf +.I /etc/mtrace-ng.conf\fR or \fISYSCONFDIR/mtrace-ng.conf System configuration file .TP -.I $HOME/.mtrace\fR or \fI$XDG_CONFIG_HOME/mtrace +.I $HOME/.mtrace-ng\fR or \fI$XDG_CONFIG_HOME/mtrace-ng Personal config file, overrides system configuration file .PP -See mtrace.conf(5) for details on the syntax of this file. +See mtrace-ng.conf(5) for details on the syntax of this file. .SH AUTHOR Stefani Seibold .SH "SEE ALSO" -.BR mtrace.conf(5), +.BR mtrace-ng.conf(5), .BR ptrace(2), .BR perf(1) diff --git a/mtrace.conf.5 b/mtrace-ng.conf.5 similarity index 84% rename from mtrace.conf.5 rename to mtrace-ng.conf.5 index d6b16d3..38bb1d6 100644 --- a/mtrace.conf.5 +++ b/mtrace-ng.conf.5 @@ -16,15 +16,15 @@ .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA .\" 02110-1301 USA .\" -.TH mtrace.conf "5" "May 2015" "" "mtrace configuration file" +.TH mtrace-ng.conf "5" "May 2015" "" "mtrace-ng configuration file" .SH "NAME" .LP -\fBmtrace.conf\fR \- Configuration file for \fBmtrace(1)\fR. +\fBmtrace-ng.conf\fR \- Configuration file for \fBmtrace-ng(1)\fR. .SH DESCRIPTION -This manual page describes \fBmtrace.conf\fR, a file that contains -configuration information for \fBmtrace(1)\fR to use. +This manual page describes \fBmtrace-ng.conf\fR, a file that contains +configuration information for \fBmtrace-ng(1)\fR to use. Each line of a configuration file describes at most a single item. Lines composed entirely of white space are ignored, as are lines diff --git a/mtrace.h b/mtrace.h index d006160..b71c37d 100644 --- a/mtrace.h +++ b/mtrace.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/options.c b/options.c index 5746f9b..cf16098 100644 --- a/options.c +++ b/options.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * @@ -60,7 +60,7 @@ static struct opt_p_t *opt_p_last; static struct opt_b_t *opt_b_last; static struct opt_O_t *opt_O_last; -static char *progname; /* Program name (`mtrace') */ +static char *progname; /* Program name (mtrace-ng) */ static void err_usage(void) { @@ -93,8 +93,9 @@ static void usage(void) " -i, --interactive interactive client mode\n" #endif " -O, --omit=FILE do not place breakpoint in this file\n" - " -k, --kill abort mtrace due unexpected error conditon\n" + " -k, --kill abort mtrace-ng due unexpected error conditon\n" " -l, --logfile use log file instead of socket connection\n" + " -L, --long long dump including map filename\n" " -n, --nocpp disable trace of c++ allocation operators (faster for libstdc++)\n" " -N, --nohwbp disable hardware breakpoint support\n" #ifndef DISABLE_CLIENT @@ -107,7 +108,7 @@ static void usage(void) " -s, --sort-by=type sort dump by type:\n" " allocations, average, bytes-leaked, leaks, stacks, total, tsc, usage\n" #endif - " -S, --sanity check mismatching operations against new/new[] allocations\n" + " -S, --sanity check mismatching operations against new/delete\n" " -t, --trace trace mode\n" " -u, --user=USERNAME run command with the userid, groupid of username\n" " -V, --version output version information and exit\n" @@ -209,7 +210,7 @@ static void def_config(void) } if (path) { - if (asprintf(&filename, "%s/.mtrace", path) != -1) { + if (asprintf(&filename, "%s/.mtrace-ng", path) != -1) { if (!add_opt_F(filename)) return; free(filename); @@ -218,20 +219,20 @@ static void def_config(void) path = getenv("XDG_CONFIG_HOME"); if (path) { - if (asprintf(&filename, "%s/mtrace", path) != -1) { + if (asprintf(&filename, "%s/mtrace-ng", path) != -1) { if (!add_opt_F(filename)) return; free(filename); } } - if (asprintf(&filename, "%s/mtrace.conf", SYSCONFDIR) != -1) { + if (asprintf(&filename, "%s/mtrace-ng.conf", SYSCONFDIR) != -1) { if (!add_opt_F(filename)) return; free(filename); } - if (asprintf(&filename, "%s/mtrace.conf", "/etc") != -1) { + if (asprintf(&filename, "%s/mtrace-ng.conf", "/etc") != -1) { if (!add_opt_F(filename)) return; free(filename); @@ -295,6 +296,7 @@ char **process_options(int argc, char **argv) options.kill = 0; options.nocpp = 0; options.nohwbp = 0; + options.lflag = 0; for(;;) { int c; @@ -316,6 +318,9 @@ char **process_options(int argc, char **argv) #endif { "kill", 0, 0, 'k' }, { "logfile", 1, 0, 'l' }, +#ifndef DISABLE_CLIENT + { "long", 0, 0, 'L' }, +#endif { "nocpp", 0, 0, 'n' }, { "nohwbp", 0, 0, 'N' }, #ifndef DISABLE_CLIENT @@ -346,7 +351,11 @@ char **process_options(int argc, char **argv) #ifndef DISABLE_CLIENT "i" #endif - "kLnNStVvw" + "k" +#ifndef DISABLE_CLIENT + "L" +#endif + "nNStVvw" #ifndef DISABLE_CLIENT "b:" #endif @@ -434,6 +443,9 @@ char **process_options(int argc, char **argv) case 'l': options.logfile = optarg; break; + case 'L': + options.lflag = 1; + break; case 'o': output = optarg; break; @@ -529,7 +541,7 @@ char **process_options(int argc, char **argv) options.user = optarg; break; case 'V': - printf("mtrace version " PACKAGE_VERSION ".\n" + printf("mtrace-ng version " PACKAGE_VERSION ".\n" "Copyright (C) 2015 Stefani Seibold .\n" "\n" "This software was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany.\n" diff --git a/options.h b/options.h index 8809904..676c151 100644 --- a/options.h +++ b/options.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * @@ -88,6 +88,7 @@ struct options_t { int debug; /* debug */ int nocpp; /* disable trace of c++ allocation operators */ int nohwbp; /* disable hardware breakpoint support */ + int lflag; /* long dump */ }; char **process_options(int argc, char **argv); diff --git a/rbtree.c b/rbtree.c index 6f56461..0adc495 100644 --- a/rbtree.c +++ b/rbtree.c @@ -1,6 +1,6 @@ /* * Red Black Trees - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the linux kernel source * Copyright (C) 1999 Andrea Arcangeli diff --git a/rbtree.h b/rbtree.h index 00a787b..d171036 100644 --- a/rbtree.h +++ b/rbtree.h @@ -1,6 +1,6 @@ /* * Red Black Trees - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the linux kernel source * Copyright (C) 1999 Andrea Arcangeli diff --git a/report.c b/report.c index a4e52d9..29059e5 100644 --- a/report.c +++ b/report.c @@ -1,7 +1,7 @@ /* * report events to client * - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -58,10 +58,12 @@ static int report_alloc64(struct task *task, enum mt_operation op, unsigned long if (backtrace_location_type(task) != LIBTYPE_LOADER) { alloc->data[i] = (uint64_t)backtrace_get_ip(task); - if (!alloc->data[i]) - break; + if (!i || alloc->data[i - 1] != alloc->data[i]) { + if (!alloc->data[i]) + break; - ++i; + ++i; + } } if (backtrace_step(task) < 0) @@ -92,10 +94,12 @@ static int report_alloc32(struct task *task, enum mt_operation op, unsigned long if (backtrace_location_type(task) != LIBTYPE_LOADER) { alloc->data[i] = (uint32_t)backtrace_get_ip(task); - if (!alloc->data[i]) - break; + if (!i || alloc->data[i - 1] != alloc->data[i]) { + if (!alloc->data[i]) + break; - ++i; + ++i; + } } if (backtrace_step(task) < 0) diff --git a/report.h b/report.h index 09345b6..a21d6fa 100644 --- a/report.h +++ b/report.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/server.c b/server.c index 51e7a79..99aa83c 100644 --- a/server.c +++ b/server.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/server.h b/server.h index 9bb49cf..bbeb8f9 100644 --- a/server.h +++ b/server.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/Makefile.am b/sysdeps/Makefile.am index bcbfbdb..b799a2c 100644 --- a/sysdeps/Makefile.am +++ b/sysdeps/Makefile.am @@ -1,4 +1,4 @@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or diff --git a/sysdeps/Makefile.in b/sysdeps/Makefile.in index 9ecde05..9ae0320 100644 --- a/sysdeps/Makefile.in +++ b/sysdeps/Makefile.in @@ -14,7 +14,7 @@ @SET_MAKE@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or diff --git a/sysdeps/linux-gnu/Makefile.am b/sysdeps/linux-gnu/Makefile.am index 4a7e40c..3c3d7ec 100644 --- a/sysdeps/linux-gnu/Makefile.am +++ b/sysdeps/linux-gnu/Makefile.am @@ -1,4 +1,4 @@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or diff --git a/sysdeps/linux-gnu/Makefile.in b/sysdeps/linux-gnu/Makefile.in index 5747a5a..25b0d70 100644 --- a/sysdeps/linux-gnu/Makefile.in +++ b/sysdeps/linux-gnu/Makefile.in @@ -14,7 +14,7 @@ @SET_MAKE@ -# This file is part of mtrace. +# This file is part of mtrace-ng. # Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or diff --git a/sysdeps/linux-gnu/arm/Makefile.am b/sysdeps/linux-gnu/arm/Makefile.am index 4e77673..8fb607c 100644 --- a/sysdeps/linux-gnu/arm/Makefile.am +++ b/sysdeps/linux-gnu/arm/Makefile.am @@ -1,5 +1,5 @@ -# This file is part of mtrace. -# Copyright (C) 2010 Marc Kleine-Budde, Pengutronix +# This file is part of mtrace-ng. +# Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff --git a/sysdeps/linux-gnu/arm/Makefile.in b/sysdeps/linux-gnu/arm/Makefile.in index 7416fed..7ea9839 100644 --- a/sysdeps/linux-gnu/arm/Makefile.in +++ b/sysdeps/linux-gnu/arm/Makefile.in @@ -14,8 +14,8 @@ @SET_MAKE@ -# This file is part of mtrace. -# Copyright (C) 2010 Marc Kleine-Budde, Pengutronix +# This file is part of mtrace-ng. +# Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff --git a/sysdeps/linux-gnu/arm/arch.c b/sysdeps/linux-gnu/arm/arch.c index 57ca199..9979fc3 100644 --- a/sysdeps/linux-gnu/arm/arch.c +++ b/sysdeps/linux-gnu/arm/arch.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/arm/arch.h b/sysdeps/linux-gnu/arm/arch.h index 98182c4..ed9ddd6 100644 --- a/sysdeps/linux-gnu/arm/arch.h +++ b/sysdeps/linux-gnu/arm/arch.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/sysdeps/linux-gnu/arm/dwarf-arm.c b/sysdeps/linux-gnu/arm/dwarf-arm.c index b9255f6..4848a2f 100644 --- a/sysdeps/linux-gnu/arm/dwarf-arm.c +++ b/sysdeps/linux-gnu/arm/dwarf-arm.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/sysdeps/linux-gnu/arm/regs.c b/sysdeps/linux-gnu/arm/regs.c index ab713a5..c33bb4a 100644 --- a/sysdeps/linux-gnu/arm/regs.c +++ b/sysdeps/linux-gnu/arm/regs.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/backtrace.c b/sysdeps/linux-gnu/backtrace.c index f35fb66..ecec7cf 100644 --- a/sysdeps/linux-gnu/backtrace.c +++ b/sysdeps/linux-gnu/backtrace.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/ioevent.c b/sysdeps/linux-gnu/ioevent.c index fac26d2..d6bc5a7 100644 --- a/sysdeps/linux-gnu/ioevent.c +++ b/sysdeps/linux-gnu/ioevent.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/ioevent.h b/sysdeps/linux-gnu/ioevent.h index 852f174..7741edd 100644 --- a/sysdeps/linux-gnu/ioevent.h +++ b/sysdeps/linux-gnu/ioevent.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/os.c b/sysdeps/linux-gnu/os.c index b28e051..002c281 100644 --- a/sysdeps/linux-gnu/os.c +++ b/sysdeps/linux-gnu/os.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -334,7 +334,7 @@ void change_uid(const char *command) run_gid = pent->pw_gid; if (initgroups(options.user, run_gid) < 0) { - perror("mtrace: initgroups"); + perror("mtrace-ng: initgroups"); exit(1); } } else { @@ -355,11 +355,11 @@ void change_uid(const char *command) } } if (setregid(run_gid, run_egid) < 0) { - perror("mtrace: setregid"); + perror("mtrace-ng: setregid"); exit(1); } if (setreuid(run_uid, run_euid) < 0) { - perror("mtrace: setreuid"); + perror("mtrace-ng: setreuid"); exit(1); } } diff --git a/sysdeps/linux-gnu/os.h b/sysdeps/linux-gnu/os.h index d63e8cf..5843c76 100644 --- a/sysdeps/linux-gnu/os.h +++ b/sysdeps/linux-gnu/os.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/sysdeps/linux-gnu/ppc/Makefile.am b/sysdeps/linux-gnu/ppc/Makefile.am index b3cd649..878f8a0 100644 --- a/sysdeps/linux-gnu/ppc/Makefile.am +++ b/sysdeps/linux-gnu/ppc/Makefile.am @@ -1,5 +1,5 @@ -# This file is part of mtrace. -# Copyright (C) 2010 Marc Kleine-Budde, Pengutronix +# This file is part of mtrace-ng. +# Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff --git a/sysdeps/linux-gnu/ppc/Makefile.in b/sysdeps/linux-gnu/ppc/Makefile.in index 93ad4e4..b84b08c 100644 --- a/sysdeps/linux-gnu/ppc/Makefile.in +++ b/sysdeps/linux-gnu/ppc/Makefile.in @@ -14,8 +14,8 @@ @SET_MAKE@ -# This file is part of mtrace. -# Copyright (C) 2010 Marc Kleine-Budde, Pengutronix +# This file is part of mtrace-ng. +# Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff --git a/sysdeps/linux-gnu/ppc/arch.c b/sysdeps/linux-gnu/ppc/arch.c index fc30cc9..d578b77 100644 --- a/sysdeps/linux-gnu/ppc/arch.c +++ b/sysdeps/linux-gnu/ppc/arch.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/ppc/arch.h b/sysdeps/linux-gnu/ppc/arch.h index b1ee7ad..7f540c6 100644 --- a/sysdeps/linux-gnu/ppc/arch.h +++ b/sysdeps/linux-gnu/ppc/arch.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/sysdeps/linux-gnu/ppc/dwarf-ppc.c b/sysdeps/linux-gnu/ppc/dwarf-ppc.c index 00dc3c7..eb2889d 100644 --- a/sysdeps/linux-gnu/ppc/dwarf-ppc.c +++ b/sysdeps/linux-gnu/ppc/dwarf-ppc.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/sysdeps/linux-gnu/ppc/regs.c b/sysdeps/linux-gnu/ppc/regs.c index 6df3ea5..b40de17 100644 --- a/sysdeps/linux-gnu/ppc/regs.c +++ b/sysdeps/linux-gnu/ppc/regs.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/proc.c b/sysdeps/linux-gnu/proc.c index b35df92..aa03195 100644 --- a/sysdeps/linux-gnu/proc.c +++ b/sysdeps/linux-gnu/proc.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * @@ -49,7 +49,7 @@ #include "mtelf.h" #include "task.h" -/* /proc/pid doesn't exist just after the fork, and sometimes `mtrace' +/* /proc/pid doesn't exist just after the fork, and sometimes `mtrace-ng' * couldn't open it to find the executable. So it may be necessary to * have a bit delay */ diff --git a/sysdeps/linux-gnu/socket.c b/sysdeps/linux-gnu/socket.c index b30edac..4a5c2bb 100644 --- a/sysdeps/linux-gnu/socket.c +++ b/sysdeps/linux-gnu/socket.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/socket.h b/sysdeps/linux-gnu/socket.h index d16e595..36f0f4b 100644 --- a/sysdeps/linux-gnu/socket.h +++ b/sysdeps/linux-gnu/socket.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/thread.c b/sysdeps/linux-gnu/thread.c index 5353c3c..9376389 100644 --- a/sysdeps/linux-gnu/thread.c +++ b/sysdeps/linux-gnu/thread.c @@ -1,7 +1,7 @@ /* * phtread thread wrapper * - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/trace.c b/sysdeps/linux-gnu/trace.c index 2d77dfe..2a3b6bc 100644 --- a/sysdeps/linux-gnu/trace.c +++ b/sysdeps/linux-gnu/trace.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -304,13 +304,13 @@ static void trace_fail_warning(void) #ifdef HAVE_LIBSELINUX if (security_get_boolean_active("deny_ptrace") == 1) fprintf(stderr, - "The SELinux boolean 'deny_ptrace' is enabled, which may prevent mtrace\n" + "The SELinux boolean 'deny_ptrace' is enabled, which may prevent mtrace-ng\n" "from tracing an other task. You can disable this process attach protection by\n" "issuing 'setsebool deny_ptrace=0' in the superuser context.\n"); #else fprintf(stderr, "Could not trace! Maybe the SELinux boolean 'deny_ptrace' is enabled, which may\n" - "prevent mtrace from tracing an other tasks. Try to disable this process attach\n" + "prevent mtrace-ng from tracing an other tasks. Try to disable this process attach\n" "protection by issuing 'setsebool deny_ptrace=0' in the superuser context.\n"); #endif } diff --git a/sysdeps/linux-gnu/x86/Makefile.am b/sysdeps/linux-gnu/x86/Makefile.am index ae4179d..8a4a8eb 100644 --- a/sysdeps/linux-gnu/x86/Makefile.am +++ b/sysdeps/linux-gnu/x86/Makefile.am @@ -1,5 +1,5 @@ -# This file is part of mtrace. -# Copyright (C) 2010 Marc Kleine-Budde, Pengutronix +# This file is part of mtrace-ng. +# Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff --git a/sysdeps/linux-gnu/x86/Makefile.in b/sysdeps/linux-gnu/x86/Makefile.in index 17fdc6d..74c0461 100644 --- a/sysdeps/linux-gnu/x86/Makefile.in +++ b/sysdeps/linux-gnu/x86/Makefile.in @@ -14,8 +14,8 @@ @SET_MAKE@ -# This file is part of mtrace. -# Copyright (C) 2010 Marc Kleine-Budde, Pengutronix +# This file is part of mtrace-ng. +# Copyright (C) 2015 Stefani Seibold # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff --git a/sysdeps/linux-gnu/x86/arch.c b/sysdeps/linux-gnu/x86/arch.c index 7a07dbe..ff975ea 100644 --- a/sysdeps/linux-gnu/x86/arch.c +++ b/sysdeps/linux-gnu/x86/arch.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/linux-gnu/x86/arch.h b/sysdeps/linux-gnu/x86/arch.h index 5445243..7ea8bf8 100644 --- a/sysdeps/linux-gnu/x86/arch.h +++ b/sysdeps/linux-gnu/x86/arch.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/sysdeps/linux-gnu/x86/dwarf-x86.c b/sysdeps/linux-gnu/x86/dwarf-x86.c index 60ee8b1..78030f5 100644 --- a/sysdeps/linux-gnu/x86/dwarf-x86.c +++ b/sysdeps/linux-gnu/x86/dwarf-x86.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/sysdeps/linux-gnu/x86/regs.c b/sysdeps/linux-gnu/x86/regs.c index bf0a9a1..1547be7 100644 --- a/sysdeps/linux-gnu/x86/regs.c +++ b/sysdeps/linux-gnu/x86/regs.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/sysdeps/sysdep.h b/sysdeps/sysdep.h index d38916a..275683e 100644 --- a/sysdeps/sysdep.h +++ b/sysdeps/sysdep.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/task.c b/task.c index e39e5cb..6910eef 100644 --- a/task.c +++ b/task.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * This file is based on the ltrace source * diff --git a/task.h b/task.h index d302778..fa887d3 100644 --- a/task.h +++ b/task.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. @@ -133,7 +133,7 @@ int task_fork(struct task *task, struct task *newtask); /* reset all breakpoints for task */ void task_reset_bp(struct task *task); -/* Iterate through the leader tasks that mtrace currently traces. */ +/* Iterate through the leader tasks that mtrace-ng currently traces. */ void each_process(void (*cb)(struct task *task)); /* Iterate through list of tasks of a given leader task asks */ diff --git a/thread.h b/thread.h index 1004a8c..01a03a6 100644 --- a/thread.h +++ b/thread.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/trace.c b/trace.c index 2c3cf55..a85157f 100644 --- a/trace.c +++ b/trace.c @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany. diff --git a/trace.h b/trace.h index 855454c..3d18ea2 100644 --- a/trace.h +++ b/trace.h @@ -1,5 +1,5 @@ /* - * This file is part of mtrace. + * This file is part of mtrace-ng. * Copyright (C) 2015 Stefani Seibold * * This work was sponsored by Rohde & Schwarz GmbH & Co. KG, Munich/Germany.