1 2009-07-25 Juan Cespedes <cespedes@debian.org>
4 * Created "libltrace.a" and a simple main program that calls it
5 * Added support for callbacks to libltrace
6 * Got rid of GNU's Autoconf stuff
7 * Make it work again in sparc with new kernel headers
9 2009-05-21 Juan Cespedes <cespedes@debian.org>
11 * Release version 0.5.2
12 * new fork() and clone() approach:
13 + used PTRACE_O_TRACE{FORK,VFORK,CLONE} to trace newly created
14 processes instead of figuring it out whether a given syscall
15 would create another process or not
16 That way, new processes are always traced from the very beginning
17 * Use PTRACE_O_TRACEEXEC to check if a process has called exec()
19 2009-05-07 Juan Cespedes <cespedes@debian.org>
21 * clean-up of structs Process, Breakpoint, Function and Event
23 2009-04-07 Juan Cespedes <cespedes@debian.org>
25 * Improved documentation
26 * Cleaning up of "struct options"
27 * wait_for_something -> sysdeps/linux/events.c:next_event()
28 * wait for new children to stop instead of assuming they have stopped
30 2009-02-11 Juan Cespedes <cespedes@debian.org>
32 * Fixed bug present since the first version (!) of ltrace,
33 which caused many programs to segfault when a signal is received:
34 + When a breakpoint is hit, and we need to continue with it, we:
35 1) remove the breakpoint
37 3) when control comes back, set the breakpoint again
38 4) let the process continue
39 + The problem came when a signal is received in the middle
40 of all this (specifically, between 2) and 3)).
41 If this is so, we treat the signal "in the usual way",
42 it is, at the end we issue a "CONTINUE" instead of the
45 2008-12-10 Juan Cespedes <cespedes@debian.org>
47 * summary.c: Fix "ltrace -o -c"
48 * mkdist: rm -rf autom4te.cache
49 * debian/control.ini: re-added armel and armeb
51 2008-12-10 Juan Cespedes <cespedes@debian.org>
53 * Release version 0.5.1
55 2008-12-10 Juan Cespedes <cespedes@debian.org>
57 * Patches from Anderson Lizardo and Riku Voipio:
58 + Add generic support for arm targets
59 + Save funtion arguments on arm
60 + Add thumb instruction support
61 + Add basic arm/eabi support
62 + fix exec() testcase cleanup
63 + fix memory corruption in clone() test
64 + fix tracing child with "-p" option
66 2008-02-27 Luis Machado <luisgpm@br.ibm.com>
68 * sysdeps/linux-gnu/ppc/trace.c (arch_umovelong): New function.
69 * sysdeps/linux-gnu/ppc/regs.c (get_instruction): New function.
70 (get_count_register): New function.
71 * sysdeps/linux-gnu/ppc/arch.h (ARCH_HAVE_UMOVELONG): New define.
72 * sysdeps/linux-gnu/trace.c (umovelong): Create arch-specific
74 * ltrace.h (umovelong): Change prototype.
75 * process_event.c (process_breakpoint): Handle specifics of ppc32 PLT.
76 * display_args.c: Call umovelong with info parameter.
78 2007-09-04 Juan Cespedes <cespedes@debian.org>
80 * ltrace.h: Take arg_num out of arg_type_info
81 * linux-gnu/*/trace.c: gimme_arg(): Add arg_num as argument
82 * ltrace.c: check for existence of $HOME before using it
83 * General: Small fixes (indentation)
85 2007-08-31 Juan Cespedes <cespedes@debian.org>
87 * General: Small fixes (indentation, typos, clean-up of code)
88 * ltrace.c: Close output file on exit
89 * ltrace.c: use getenv("HOME") instead of getpwuid(geteuid())->pw_dir
90 * read_config_file.c, display_args.c: remove "ignore" argtype;
91 that's what "void" is for
92 * packaging/debian/: misc fixes, sync with version 0.5-2
93 * etc/ltrace.conf: added more system calls
94 * testsuite/ltrace.minor/trace-clone.c: sleep(1) to avoid earlier
95 termination of process
96 * sysdeps/linux-gnu/trace.c: trace_pid(): reverted Petr's patch
97 to wait for child to stop, as it stopped following clone()
98 * process_event.c: Disable breakpoints before doing fork() (again!),
99 to make children work as expected
101 2007-05-10 Petr Machata <pmachata@redhat.com>
103 * Based on work of Supriya Kannery <supriyak@in.ibm.com>
104 * wait_for_something.c, process_event.c: Tracing across exec.
105 * sysdeps/linux-gnu/trace.c, ltrace.h: New interface was_exec.
106 * testsuite/ltrace.minor/trace-exec.c,
107 testsuite/ltrace.minor/trace-exec.exp,
108 testsuite/ltrace.minor/trace-exec1.c: Testcase for same.
110 2007-05-09 Petr Machata <pmachata@redhat.com>
112 * wait_for_something.c (wait_for_something): Interpret SIGILL,
113 SIGEMT and SIGSEGV as valid breakpoint signals, if instruction
114 pointer referes to breakpoint.
115 * testsuite/ltrace.torture/ia64-sigill.s,
116 * testsuite/ltrace.torture/ia64-sigill.exp: Testcase for same.
117 IA64-centric, because the only reproducer is there.
119 2007-01-19 Petr Machata <pmachata@redhat.com>
121 * sysdeps/linux-gnu/trace.c (trace_pid): wait for child to stop,
122 as indicated by ptrace documentation.
123 * proc.c (open_pid): start the traced child again, it will have
124 been stopped after trace_pid. Fixes tracing with -p.
125 * breakpoints.c: initialize proc->breakpoints always, don't wait
126 untill it might be needed. This renders a check in insert_breakpoint
127 superfluous. Fixes a sigsegvs experienced with -L.
129 2006-12-28 Eric Vaitl <evaitl@cisco.com>
131 * sysdeps/linux-gnu/mipsel/* Added mipsel support
132 * debug.h Added printf format attribute to debug_
133 * elf.h Added mips relocation data to struct ltelf
134 * elf.c (do_init_elf) Read mips relocation data
135 * elf.c (read_elf) On the mips loop through mips_gotsym
136 instead of relplt_count.
137 * process_event.c (process_breakpoint) For the mips,
138 conditionally add a new breakpoint if the address of the
139 function changes because of lazy relocation.
140 * breakpoints.c (enable_all_breakpoints) For the mips,
141 reinsert breakpoints after the child has been started.
144 2006-11-30 Petr Machata <pmachata@redhat.com>
146 * elf.c (elf_gnu_hash): renamed to private_elf_gnu_hash to avoid
147 conflicts with non-static version from libelf.
149 2006-11-30 Petr Machata <pmachata@redhat.com>
151 * elf.c (in_load_libraries): removed unused variables
152 bitmask_idxbits and shift.
153 * elf.c (do_init_elf, opd2addr): use ARCH_SUPPORTS_OPD to
154 determine whether to load/use .opd section
155 * sysdeps/linux-gnu/*/arch.h: define ARCH_SUPPORTS_OPD accordingly
156 * breakpoints.c (insert_breakpoint): rewrite loop to canonical for
158 2006-10-13 Olaf Hering <olh@suse.de>
160 * options.c: fix up typo for config file
162 2006-09-25 Olaf Hering <olh@suse.de>
164 * elf.c, elf.h : remove confilict with glibc SHT_GNU_HASH, include
165 elf_gnu_hash() directly, remove special casing and fix up output
168 2006-09-18 Steve Fink <sphink@gmail.com>
170 * display_args.c: store arg_num in arg_type_info
171 * display_args.c: support 'double' parameters
172 * display_args.c: fix implementation of float,double params for ia64
173 * output.c, process_event.c: store arg_num in arg_type_info
174 * read_config_file.c: support 'double' parameters
175 * read_config_file.c: store arg_num in arg_type_info, and as a result,
176 stop using singleton objects for any of the arg_type_info's.
177 * read_config_file.c: improve support for struct field alignments
178 * read_config_file.c: count floating-point parameters to support ia64
179 float parameter passing
180 * sysdeps/README, sysdeps/linux-gnu/*/trace.c: pass in the full
181 arg_type_info to gimme_arg rather than just the arg_num (necessary
182 for float params on some architectures)
183 * sysdeps/linux-gnu/ia64/trace.c: accommodate register renaming when
184 fetching the parameters of a function after it has returned
185 * sysdeps/linux-gnu/ia64/trace.c: support floating point parameters
187 2006-09-15 Olaf Hering <olh@suse.de>
189 * Makefile.in : allow installation as non-root user, print out
190 some debugging information before running test suite.
191 * summary.c : allow compilation without USE_DEMANGLE
192 * sysdeps/linux-gnu/ppc/plt.c : fix warning in sym2addr
193 * sysdeps/linux-gnu/ia64/regs.c : fix warning when finding
195 * elf.c : fix up error created in 2006-07-26 refactor
197 2006-08-14 Steve Fink <sphink@gmail.com>
199 * demangle.c: remove my_demagle_dict_clear(), remove atexit() call
200 for same. Avoid potential segfault as demangling uses the
203 2006-08-07 Steve Fink <sphink@gmail.com>
205 * display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c,
206 testsuite/ltrace.main/parameters-lib.c,
207 testsuite/ltrace.main/parameters.c,
208 testsuite/ltrace.main/parameters.conf,
209 testsuite/ltrace.main/parameters.exp: Allow parameters to be
210 pointers to structs, which themselves can contain
211 (nearly) any other type, including other structs or pointers to
215 2006-08-07 Steve Fink <sphink@gmail.com>
217 * defs.h, display_args.c, etc/ltrace.conf, ltrace.1, ltrace.h,
218 options.c, options.h, read_config_file.c,
219 testsuite/ltrace.main/parameters-lib.c,
220 testsuite/ltrace.main/parameters.c,
221 testsuite/ltrace.main/parameters.conf,
222 testsuite/ltrace.main/parameters.exp: array arguments
224 2006-08-07 Steve Fink <sphink@gmail.com>
226 * etc/ltrace.conf, read_config_file.c,
227 testsuite/ltrace.main/parameters-lib.c,
228 testsuite/ltrace.main/parameters.c,
229 testsuite/ltrace.main/parameters.conf,
230 testsuite/ltrace.main/parameters.exp: add ability to typedef
232 2006-08-07 Steve Fink <sphink@gmail.com>
234 * display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c,
235 testsuite/ltrace.main/parameters-lib.c,
236 testsuite/ltrace.main/parameters.c,
237 testsuite/ltrace.main/parameters.conf,
238 testsuite/ltrace.main/parameters.exp: short, ushort and float types
240 2006-08-07 Steve Fink <sphink@gmail.com>
242 * display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c,
243 testsuite/ltrace.main/parameters-lib.c,
244 testsuite/ltrace.main/parameters.c,
245 testsuite/ltrace.main/parameters.conf,
246 testsuite/ltrace.main/parameters.exp: implement enumerated parameters
248 2006-08-07 Steve Fink <sphink@gmail.com>
250 * testsuite/ltrace.main/Makefile.in : update testsuite for
252 * testsuite/ltrace.main/parameters-lib.c : added
253 * testsuite/ltrace.main/parameters.c : added
254 * testsuite/ltrace.main/parameters.conf : added
255 * testsuite/ltrace.main/parameters.exp : added
257 2006-08-07 Steve Fink <sphink@gmail.com>
259 * display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c,
260 sysdeps/README, sysdeps/linux-gnu-trace.c : switch to passing
261 around values rather than argument numbers that need to be fetched
262 (needed for pointer params)
264 2006-08-07 Steve Fink <sphink@gmail.com>
266 * display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c:
267 implement ignored arguments
269 2006-08-07 Steve Fink <sphink@gmail.com>
271 * display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c:
272 implement string[argN] and string[N] parameter descriptors
274 2006-08-07 Steve Fink <sphink@gmail.com>
276 * ltrace.h, output.c, read_config_file.c : use arg_type_info in
277 place of arg_type in order to eventually be able to record
278 properties along with types.
280 2006-07-20 Steve Fink <sphink@gmail.com>
282 * testsuite/lib/ltrace.exp: better quoting and error detection for
283 ltrace_verify_output's call to grep
285 2006-08-07 Steve Fink <sphink@gmail.com>
287 * ltrace.1: update bug email addr
289 2006-07-26 Ian Wienand <ianw@debian.org>
291 * elf.c: refactor opd2addr to not pass void* (fix warnings)
293 2006-07-18 Petr Machata <pmachata@redhat.com>
295 * elf.c: replace nonexistant elf_plt2addr with opd2addr, fix
296 typo, and fix WEAK symbol detection
297 * sysdeps/linux-gnu/ppc/arch.h: define breakpoint instruction,
298 its length, etc., also on ppc32
300 2006-07-18 Petr Machata <pmachata@redhat.com>
302 * elf.c: support .gnu.hash ELF entry
305 2006-07-18 Petr Machata <pmachata@redhat.com>
307 * options.c: don't hardcode version number
309 2006-07-18 Justin Pryzby <justinpryzby@users.sourceforge.net>
311 * ltrace.1: make demagle clearer
313 2006-07-16 Steve Fink <sphink@gmail.com>
315 * options.c: implement -F flag for alternate config file(s)
316 * ltrace.c: load SYSCONFDIR/ltrace.conf and ~/.ltrace.conf by default
318 2006-06-19 Ian Wienand <ianw@ieee.org>
320 * sysdeps/linux-gnu/mksyscallent: update, fix for ia64
321 * sysdeps/linux-gnu/i386/syscallent.h: regenerate to 2.6.17
322 * sysdeps/linux-gnu/i386/signalent.h: likewise
323 * sysdeps/linux-gnu/arm/syscallent.h: likewise
324 * sysdeps/linux-gnu/arm/signalent.h: likewise
325 * sysdeps/linux-gnu/m68k/syscallent.h: likewise
326 * sysdeps/linux-gnu/m68k/signalent.h: likewise
327 * sysdeps/linux-gnu/ia64/syscallent.h: likewise
328 * sysdeps/linux-gnu/ia64/signalent.h: likewise
330 2006-06-19 Heiko Carstens <heiko.carstens@de.ibm.com>
332 * sysdeps/linux-gnu/s390/syscalls31.h: update to 2.6.17
333 * sysdeps/linux-gnu/s390/syscalls64.h: ditto
335 2006-06-16 Justin Pryzby <justinpryzby@users.sourceforge.net>
337 * ltrace.1: spelling fix
340 2006-06-14 Ian Wienand <ianw@gelato.unsw.edu.au>
342 * configure.ac: Bump version to 0.5 for Paull Gillam's PPC64
343 non-exec PLT patch (as merged below).
344 * breakpoints.c: merge
349 * process_event.c: merge
350 * sysdeps/linux-gnu/alpha/plt.c: merge
351 * sysdeps/linux-gnu/arm/plt.c: merge
352 * sysdeps/linux-gnu/breakpoint.c: merge
353 * sysdeps/linux-gnu/i386/plt.c: merge
354 * sysdeps/linux-gnu/ia64/plt.c: merge
355 * sysdeps/linux-gnu/m68k/plt.c: merge
356 * sysdeps/linux-gnu/ppc/arch.h: merge
357 * sysdeps/linux-gnu/ppc/arch.h.rej: merge
358 * sysdeps/linux-gnu/ppc/plt.c: merge
359 * sysdeps/linux-gnu/s390/plt.c: merge
360 * sysdeps/linux-gnu/sparc/plt.c: merge
361 * sysdeps/linux-gnu/x86_64/plt.c: merge
364 2006-05-11 Heiko Carstens <heiko.carstens@de.ibm.com>
366 * sysdeps/linux-gnu/mksyscallent_s390: add
367 * sysdeps/linux-gnu/s390/syscalls31.h: update to 2.6.16
368 * sysdeps/linux-gnu/s390/syscalls64.h: ditto
370 2006-04-24 Paul Gilliam <pgilliam@us.ibm.com>
372 * elf.c: Use PLT_REINITALISATION_BP for those architectures that need
373 to re-initialize breakpoints after the dynamic linker has run. Also,
374 use value of "e_entry" for address of PLT_REINITALISATION_BP if the
375 target program has been stripped.
376 * ltrace.1: Note that fact that "-X" is only available on architectures
378 * options.c: Use PLT_REINITALISATION_BP for those architectures that
379 need to re-initialize breakpoints after the dynamic linker has run.
380 * process_event.c: ditto.
381 * sysdeps/linux-gnu/ppc/arch.h: This is the only such architecture.
382 * sysdeps/linux-gnu/arm/arch.h: Delete use of PLT_REINITALISATION_BP.
383 * sysdeps/linux-gnu/m68k/arch.h: ditto.
384 * sysdeps/linux-gnu/alpha/arch.h: ditto.
385 * sysdeps/linux-gnu/i386/arch.h: ditto.
386 * sysdeps/linux-gnu/x86_64/arch.h: ditto.
387 * sysdeps/linux-gnu/s390/arch.h: ditto.
388 * sysdeps/linux-gnu/ia64/arch.h: ditto.
389 * sysdeps/linux-gnu/sparc/arch.h: ditto.
391 2006-04-24 Paul Gilliam <pgilliam@us.ibm.com>
393 * elf.c: Adds some casts to keep a more picky version of GCC happy.
394 * sysdeps/linux-gnu/trace.c: ditto.
395 * sysdeps/linux-gnu/breakpoint.c: ditto.
398 2006-04-24 Paul Gilliam <pgilliam@us.ibm.com>
400 * summery.c: Correct a typo prevented the inclusion of "demangle.h".
402 2006-03-16 Ian Wienand <ianw@gelato.unsw.edu.au>
404 * testsuite/ltrace.minor/trace-clone.c: use __clone2() for IA64
407 2006-03=13 Paul Gilliam <pgilliam@us.ibm.com>
409 * Makefile.in: Add targets to support testsuite, including 'check'.
410 * confiure.ac: Add testsuite Makefile's to AC_OUTPUT.
411 * testsuite: Add dejagnu base testsuite.
412 * testsuite/config/: Add
413 * testsuite/config/unix.exp: Add
414 * testsuite/lib/: Add
415 * testsuite/lib/compiler.c: Add
416 * testsuite/lib/compiler.cc: Add
417 * testsuite/lib/ltrace.exp: Add
418 * testsuite/ltrace.main/: Add
419 * testsuite/ltrace.main/main.c: Add
420 * testsuite/ltrace.main/main.exp: Add
421 * testsuite/ltrace.main/main-internal-1.c: Add
422 * testsuite/ltrace.main/main-internal.c: Add
423 * testsuite/ltrace.main/main-internal.exp: Add
424 * testsuite/ltrace.main/main-lib.c: Add
425 * testsuite/ltrace.main/Makefile.in: Add
426 * testsuite/ltrace.main/signals.c: Add
427 * testsuite/ltrace.main/signals.exp: Add
428 * testsuite/ltrace.main/system_calls.c: Add
429 * testsuite/ltrace.main/system_calls.exp: Add
430 * testsuite/ltrace.minor/: Add
431 * testsuite/ltrace.minor/attach-process.c: Add
432 * testsuite/ltrace.minor/attach-process.exp: Add
433 * testsuite/ltrace.minor/count-record.c: Add
434 * testsuite/ltrace.minor/count-record.exp: Add
435 * testsuite/ltrace.minor/demangle.cpp: Add
436 * testsuite/ltrace.minor/demangle.exp: Add
437 * testsuite/ltrace.minor/demangle.h: Add
438 * testsuite/ltrace.minor/demangle-lib.cpp: Add
439 * testsuite/ltrace.minor/Makefile.in: Add
440 * testsuite/ltrace.minor/print-instruction-pointer.c: Add
441 * testsuite/ltrace.minor/print-instruction-pointer.exp: Add
442 * testsuite/ltrace.minor/time-record.c: Add
443 * testsuite/ltrace.minor/time-record-T.exp: Add
444 * testsuite/ltrace.minor/time-record-tt.exp: Add
445 * testsuite/ltrace.minor/time-record-ttt.exp: Add
446 * testsuite/ltrace.minor/trace-clone.c: Add
447 * testsuite/ltrace.minor/trace-clone.exp: Add
448 * testsuite/ltrace.minor/trace-fork.c: Add
449 * testsuite/ltrace.minor/trace-fork.exp: Add
450 * testsuite/ltrace.torture/: Add
451 * testsuite/ltrace.torture/Makefile.in: Add
452 * testsuite/ltrace.torture/signals.c: Add
453 * testsuite/ltrace.torture/signals.exp: Add
454 * testsuite/Makefile.in: Add
455 * testsuite/README: Add
456 * testsuite/run-my-tests.sh: Add
457 * testsuite/so_test1/: Add
458 * testsuite/so_test2/: Add
460 2006-03-13 Paul Gilliam <pgilliam@us.ibm.com>
462 * options.h: New structure for opt_x list elements, now with 'found'.
463 * options.c: Use new opt_x_t structure, initializing 'found' to 0.
464 * elf.c: Use new 'found' field for better error checking.
466 2006-03-06 Ian Wienand <ianw@ieee.org>
468 * Makefile.in: remove unneeded dirs from make dist; use rm
471 2006-02-22 Ian Wienand <ianw@ieee.org>
473 * COPYING: update from FSF to update address
474 * Makefile.in: check for SVN checkout with make dist.
476 2006-02-21 Ian Wienand <ianw@ieee.org>
478 * README: update to point to Alioth list
480 2006-02-21 Ian Wienand <ianw@ieee.org>
482 * lots!: Rebase from RedHat 0.3.36-4.2 package. Forward port most
483 of the below changes that weren't already there. Bump version to
484 0.4 as there are two added architectures and internal API changes.
485 All changes from this point on should be reflected in this file.
487 2006-02-17 Ian Wienand <ianw@ieee.org>
489 * sysdeps/linux-gnu/ia64/arch.h: add ia64 support
490 * sysdeps/linux-gnu/ia64/breakpoint.c: add
491 * sysdeps/linux-gnu/ia64/Makefile: add
492 * sysdeps/linux-gnu/ia64/plt.c: add
493 * sysdeps/linux-gnu/ia64/ptrace.h: add
494 * sysdeps/linux-gnu/ia64/regs.c: add
495 * sysdeps/linux-gnu/ia64/signalent.h: add
496 * sysdeps/linux-gnu/ia64/syscallent.h: add
497 * sysdeps/linux-gnu/ia64/trace.c: add
498 * elf.h: add extra field for PLT size
499 * elf.c: put in PLT size
500 * sysdeps/linux-gnu/breakpoint.c: add arch breakpoint override
501 * sysdeps/linux-gnu/trace.c: don't single step after breakpoint for
504 * configure.ac: add version to AC_INIT, bump version to 0.3.38
505 * options.c: use PACKAGE_VERSION
507 2006-02-16 Ian Wienand <ianw@ieee.org>
509 * Makefile.in: install documentation into share/doc, make dist
510 target from SVN export.
512 2006-02-16 Rajeev V. Pillai <rajeevvp@yahoo.com>
514 * Makefile.in: pass through CPP and LD FLAGS
516 2006-02-16 Ian Wienand <ianw@ieee.org>
518 * read_config_file.c: initialise pt stack argument to stop warning
519 * summary.c: make show_summary() obey -C for demangaling function names
521 2006-02-16 Bernd Zeimetz <bernd@zeimetz.de>
523 * ltrace.1: reference reportbug
525 2006-02-16 Colin S. Miller <csmiller@iname.com>
527 * ltrace.1: fix debug typo
529 2006-02-16 Andrew Stribblehill <ads@debian.org>
531 * etc/ltrace.conf: fix putenv typo
533 2006-02-16 Ian Wienand <ianw@ieee.org>
536 * Makefile.in: remove obsolete -I- for -iquote, add TAGS target
537 * debug.c, debug.h: __PRETTY_FUNCTION__ is const; change specifier
539 * ltrace.1: add a note about not tracing dlopen()ed libraries