Sungguk Na [Wed, 8 Jan 2020 08:23:52 +0000 (17:23 +0900)]
Fix Werror unreachable after switch
Change-Id: Icc6a3a1fcc0b665f96337783102583def7d85fd5
Signed-off-by: Sungguk Na <sungguk.na@samsung.com>
Sungguk Na [Mon, 6 Jan 2020 07:36:12 +0000 (16:36 +0900)]
Tune up test feature macros for glibc 2.30
Change-Id: Ieb351b7f64a5a39fab50ffad4ddcfbdcbcd21944
Signed-off-by: Sungguk Na <sungguk.na@samsung.com>
Petr Machata [Mon, 20 Jan 2014 10:07:36 +0000 (11:07 +0100)]
Older glibc's don't expose the necessary interfaces without _GNU_SOURCE
Change-Id: Ib8ce6df9c10793e9136d3a5d8c335a8f289ebd3c
Signed-off-by: Sungguk Na <sungguk.na@samsung.com>
Hyeongsik Min [Tue, 27 Dec 2016 07:25:19 +0000 (16:25 +0900)]
Replace readdir_r with readdir
Change-Id: I1a6c75d8a2f64e58a4c81724e2c3b0568b581a7b
Signed-off-by: Hyeongsik Min <hyeongsik.min@samsung.com>
José Bollo [Wed, 17 Dec 2014 10:17:33 +0000 (11:17 +0100)]
Fix bug in `expr_clone`
On allocation failure of nhls for EXPR_OP_CALL2,
EXPR_OP_UP, EXPR_OP_CALL1, the correct behaviour,
that is returning -1, was only effective if
node->kind == EXPR_OP_CALL2 and node->u.call.own_rhs
This change implements the correct behaviour.
It also solves a warning when compiling with gcc4.9 that
broke integration when compiling with -Werror: the compiler
was hurt to use nrhs that he suspected (wrongly) to be
uninitialised.
Change-Id: I184fea5e121d38fa1df5d0a8680edf51e9fff1a8
Signed-off-by: José Bollo <jose.bollo@open.eurogiciel.org>
Chanho Park [Fri, 22 Aug 2014 11:40:09 +0000 (20:40 +0900)]
packaging: update to 0.7.91
Change-Id: I2e383896f948a19dcd5ba07b8e7f60b6de0c5c74
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Anas Nashif [Wed, 31 Jul 2013 16:52:41 +0000 (12:52 -0400)]
do not error on warnings
Alexandru Cornea [Mon, 1 Jul 2013 17:10:06 +0000 (20:10 +0300)]
resetting manifest requested domain to floor
Anas Nashif [Fri, 10 May 2013 05:03:25 +0000 (01:03 -0400)]
do not depend on dejagnu
Anas Nashif [Tue, 15 Jan 2013 16:39:26 +0000 (08:39 -0800)]
Update to 0.7.2
Anas Nashif [Tue, 15 Jan 2013 16:33:50 +0000 (08:33 -0800)]
Update to 0.7.2
Anas Nashif [Sun, 9 Dec 2012 00:10:58 +0000 (16:10 -0800)]
do not run tests
Anas Nashif [Fri, 7 Dec 2012 21:51:33 +0000 (13:51 -0800)]
clean up spec
Anas Nashif [Tue, 13 Nov 2012 15:29:26 +0000 (07:29 -0800)]
demangle lib.cstdlib
Anas Nashif [Tue, 13 Nov 2012 15:28:55 +0000 (07:28 -0800)]
add packaging
Petr Machata [Tue, 12 Aug 2014 08:01:09 +0000 (10:01 +0200)]
Guard a dwarf_prototypes.h include with a conditional
- Thanks to Kai Noda for reporting this.
Petr Machata [Fri, 8 Aug 2014 22:04:45 +0000 (00:04 +0200)]
Mention support of powerpc64le ELFv2 in README and NEWS
Petr Machata [Fri, 8 Aug 2014 21:26:55 +0000 (23:26 +0200)]
PowerPC: convert ELFv2 conditionals form preprocessor to plain conditions
- The reason being that this way, all of the code is exposed all the
time, which should make future refactoring easier. There's nothing
that needs hiding, no system-specific constants or such.
Petr Machata [Fri, 8 Aug 2014 21:26:30 +0000 (23:26 +0200)]
Fix coding style in PowerPC's arch.h
Petr Machata [Fri, 8 Aug 2014 21:10:21 +0000 (23:10 +0200)]
Fix bugs in fetch backend of powerpc64le
- One bug was in a function that returned a small structure and whose
first argument was a pointer that pointed to stack. The old code
assumed that meant that the structure was returned by implicit
reference instead of in registers.
- Another was in passing large HFA's (larger than 8 elements) in
arguments, and in returning HFA's.
Petr Machata [Fri, 8 Aug 2014 15:09:58 +0000 (17:09 +0200)]
Recognize powerpc64le in configure
Petr Machata [Fri, 8 Aug 2014 15:05:46 +0000 (17:05 +0200)]
Fix an error path problem introduced in last commit
Petr Machata [Fri, 8 Aug 2014 14:53:41 +0000 (16:53 +0200)]
In config files, allow whitespace between identifier and opening paren
Dima Kogan [Sat, 26 Jul 2014 04:20:06 +0000 (21:20 -0700)]
minor whitespace-only style fix
Dima Kogan [Mon, 21 Jul 2014 20:50:47 +0000 (13:50 -0700)]
fixed testsuite typos: ltarce -> ltrace
Petr Machata [Thu, 31 Jul 2014 09:45:10 +0000 (11:45 +0200)]
Add a missing license blurb
Petr Machata [Thu, 31 Jul 2014 09:44:58 +0000 (11:44 +0200)]
Normalize some include guards
Petr Machata [Thu, 31 Jul 2014 09:37:09 +0000 (11:37 +0200)]
Drop uses of #pragma once
Alexandre Belloni [Tue, 29 Jul 2014 11:04:21 +0000 (13:04 +0200)]
PPC: fix PPC32 build
Compilation on PPC32 fails because STACK_FRAME_OVERHEAD is never defined
in arch.h.
Define it to 112 on that platform to restore the same behaviour as
before commit
eea4ad2cce289753aaa35b4e0258a76d8f8f367c.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Petr Machata [Fri, 25 Jul 2014 11:03:59 +0000 (13:03 +0200)]
Copy struct library.should_activate_latent on clone
- I don't think it makes actual difference, as the only consumer of this
symbol is proc_add_library, and that's not called from proc_clone (the
clone is done by directly iterating the library list). But the code is
more obviously right this way.
Petr Machata [Fri, 25 Jul 2014 10:40:52 +0000 (12:40 +0200)]
Fix cloning of libraries with Dwarf support
- struct library::dwfl_module was left unitialized after
library_clone. Garbage was kept in, which prevented proper
initialization later, and resulted in segmentation violation.
Dima Kogan [Sat, 12 Jul 2014 00:04:48 +0000 (17:04 -0700)]
I now always build the export list
Previously I only built the export list when tracing with -l. Since I was using
this export list to resolve aliased symbols in addition to setting breakpoints,
this aliased symbol resolution was only working with -l. I now always build the
export list to make aliased symbol resolution always work.
I now have a separate variable to control whether we should activate latent
symbols or not; previously the existence of the export list was used to make
this determination.
Furthermore populate_this_symtab() now takes an extra argument to indicate that
ONLY the export list should be filled in
Dima Kogan [Thu, 10 Jul 2014 23:02:51 +0000 (16:02 -0700)]
un-consted some variables to build with older (<= gcc-4.6) compilers
Dima Kogan [Wed, 9 Jul 2014 08:09:33 +0000 (01:09 -0700)]
Made activate_latent_in() iterations much more efficient
Previously activate_latent_in() iterations looked like
for(export names in lib1) // hash table iteration
{
for(symbol names in lib2) // list iteration
{
if(names equal && libsym->latent)
{
proc_activate_latent_symbol(proc, libsym)
}
}
}
This is inefficient both due to the double iteration but also since iterating
over a hash table in slow (have to look through all cells, even empty ones).
This patch turns this logic into
for(symbol names in lib2) // list iteration
{
if(name in lib1 export names && libsym->latent) // hash table lookup
{
proc_activate_latent_symbol(proc, libsym)
}
}
So there's no more double iteration, and the hash iteration was turned into a
hash lookup. Much better.
Dima Kogan [Wed, 9 Jul 2014 07:45:42 +0000 (00:45 -0700)]
removed needless #include
Dima Kogan [Thu, 26 Jun 2014 05:22:12 +0000 (22:22 -0700)]
library_exported_names_each_alias(), library_exported_names_each() now restartable
These function now takes a *start_after, and return a pointer to the first
failing key, like the other ltrace iterators
Dima Kogan [Thu, 26 Jun 2014 04:50:15 +0000 (21:50 -0700)]
added forgotten free(), forgotten return
Dima Kogan [Thu, 26 Jun 2014 04:50:00 +0000 (21:50 -0700)]
clarified some int return code checking
Dima Kogan [Thu, 26 Jun 2014 00:27:20 +0000 (17:27 -0700)]
whitespace 'if(' -> 'if ('
Dima Kogan [Thu, 26 Jun 2014 00:22:28 +0000 (17:22 -0700)]
renamed _dtor_* and _clone_* functions to remove the leading _
Dima Kogan [Tue, 3 Jun 2014 00:43:16 +0000 (17:43 -0700)]
DWARF prototypes are now generated with both the plain and the linkage names
If a die has a DW_AT_linkage_name, I now use it: this is required for C++ code,
in particular.
I use the plain name regardless, since sometimes the exported symbol corresponds
to the plain name, NOT the linkage name. For instance I see this on my
Debian/sid amd64 box. In its libc, the linkage name of __nanosleep is
__GI___nanosleep, but the export is __nanosleep
Dima Kogan [Mon, 2 Jun 2014 09:01:57 +0000 (02:01 -0700)]
We now use known prototypes for all aliased symbols (same address)
Some libraries have multiple names for the same function. Prior to this patch,
it was possible to define a prototype for a symbol, and not have ltrace use it
because it saw a different symbol be called. libc is a common source of this.
For instance (on my amd64 Debian box) it defines the nanosleep symbol as both
'nanosleep' and '__GI___nanosleep', at the same address. If a calling library
calls '__GI___nanosleep', then an ltrace prototype for 'nanosleep' would not be
used, even though it should apply to this call
Petr Machata [Tue, 17 Jun 2014 15:06:00 +0000 (17:06 +0200)]
dict_hash_uint64: do not ignore upper 32 bits of the quantity
Dima Kogan [Mon, 2 Jun 2014 06:37:28 +0000 (23:37 -0700)]
added hash and equality functions for uint64_t
The hash function is identical to the 32-bit signed int hash function. This
function is unideal for such extended use, but is sufficient for now
Dima Kogan [Mon, 12 May 2014 00:02:16 +0000 (17:02 -0700)]
added NEWS, CREDITS info about the new DWARF prototyping code
Dima Kogan [Tue, 3 Jun 2014 06:00:50 +0000 (23:00 -0700)]
Added manpage section giving examples of -x, -e and -l usage
Dima Kogan [Wed, 21 May 2014 10:47:33 +0000 (03:47 -0700)]
Making sure to not double-examine the same DWARF CU
Thierry Fauck [Thu, 15 May 2014 15:21:52 +0000 (11:21 -0400)]
CREDITS update for ppc64el support
Signed-off-by: Thierry Fauck <thierry@linux.vnet.ibm.com>
Petr Machata [Thu, 15 May 2014 15:12:23 +0000 (17:12 +0200)]
In ppc-lwarx.exp, Dwarf backend may resolve atomic_add's prototype
- in which case the patterns are wrong. Change the pattern to match
both cases.
Thierry Fauck [Tue, 13 May 2014 11:48:24 +0000 (07:48 -0400)]
Support for powerpc64 arch ppc64el
Signed-off-by: Thierry Fauck <thierry@linux.vnet.ibm.com>
Add support for ppc64le proc and ELF ABIv2.
Provides support for irelative and wchar
Dima Kogan [Mon, 12 May 2014 20:14:04 +0000 (13:14 -0700)]
I only build the dwarf_prototypes if we have libdw
Dima Kogan [Sun, 11 May 2014 21:20:12 +0000 (14:20 -0700)]
removed needless cast
Dima Kogan [Sun, 11 May 2014 19:44:55 +0000 (12:44 -0700)]
added forgotten error checking to some ltrace calls
Dima Kogan [Sun, 11 May 2014 19:22:11 +0000 (12:22 -0700)]
fixed typo
Dima Kogan [Sun, 11 May 2014 19:22:00 +0000 (12:22 -0700)]
I only explicitly look at sizeof(long) if it differs from sizeof(int)
If they're the same, checking for both in a switch() is a compile error
Dima Kogan [Sun, 11 May 2014 19:21:24 +0000 (12:21 -0700)]
style whitespace changes
- * with name, not type
- if (blah), not if( blah )
Dima Kogan [Sat, 3 May 2014 08:08:40 +0000 (01:08 -0700)]
whitespace style change
- Tabs should be 8 characters.
- Lines should be no longer than 80 characters
- Pointer star belongs to the variable, not the type
- Lines shouldn't be formatted into tables arbitrarily
- if and while should get a space before the paren
Dima Kogan [Sat, 3 May 2014 07:39:38 +0000 (00:39 -0700)]
a bit more debug printing
Dima Kogan [Fri, 2 May 2014 00:21:55 +0000 (17:21 -0700)]
added a bit more diagnostic printing
Dima Kogan [Thu, 1 May 2014 08:15:18 +0000 (01:15 -0700)]
fixed memory leaks
Two leaks plugged:
1. value used for array-length
2. prototype return type
Dima Kogan [Thu, 1 May 2014 08:01:18 +0000 (01:01 -0700)]
fixed prototype memory leak
protolib_add_prototype() makes a copy of the prototype, so allocating a new
pointer there was an error
Dima Kogan [Wed, 30 Apr 2014 11:25:58 +0000 (04:25 -0700)]
removed notes
Dima Kogan [Wed, 30 Apr 2014 11:25:41 +0000 (04:25 -0700)]
removed, commented testing code
Dima Kogan [Wed, 30 Apr 2014 11:17:35 +0000 (04:17 -0700)]
dwarf diagnostic output now controlled by -D
Dima Kogan [Wed, 30 Apr 2014 11:10:52 +0000 (04:10 -0700)]
fixed broken diagnostic output
Dima Kogan [Wed, 30 Apr 2014 10:35:13 +0000 (03:35 -0700)]
reworked error and memory handling
I now longer exit() on the slightest sign of trouble, nor do I leak all my heap
memory allocations
Dima Kogan [Wed, 30 Apr 2014 06:57:39 +0000 (23:57 -0700)]
unknown pointers now return void*, not void
Dima Kogan [Mon, 28 Apr 2014 16:24:39 +0000 (09:24 -0700)]
DWARF parser now looks for exported types
I now pass true to protolib_lookup_type(). Thus the user can now define a type
in .ltrace.conf, and it would be picked up
Dima Kogan [Sun, 27 Apr 2014 23:30:12 +0000 (16:30 -0700)]
renamed type_hash -> type_dieoffset_hash
Dima Kogan [Sun, 27 Apr 2014 23:29:02 +0000 (16:29 -0700)]
type_hash is no longer global
Dima Kogan [Wed, 23 Apr 2014 23:15:57 +0000 (16:15 -0700)]
I now read the DWARF data in addition to the .conf files
Previously if a .conf file for a library was available, the corresponding DWARF
data would not be parsed. Now I use one to complement the other
Dima Kogan [Wed, 23 Apr 2014 22:55:41 +0000 (15:55 -0700)]
If a functions is defined in a .conf, I do not parse the DWARF
Previously I would parse the DWARF data for such a function, but I wouldn't use
the result. Now I don't even parse
Dima Kogan [Wed, 23 Apr 2014 22:54:49 +0000 (15:54 -0700)]
types defined in .conf files now take precedence over DWARF types
Dima Kogan [Wed, 23 Apr 2014 22:45:40 +0000 (15:45 -0700)]
style whitespace
Dima Kogan [Wed, 23 Apr 2014 10:41:55 +0000 (03:41 -0700)]
import_DWARF_prototypes() now takes JUST a lib argument
Dima Kogan [Wed, 23 Apr 2014 10:01:20 +0000 (03:01 -0700)]
moved DWARF prototype reading to library_get_prototype()
Dima Kogan [Wed, 23 Apr 2014 09:43:21 +0000 (02:43 -0700)]
updated error message to reflect the new dwfl use case
Dima Kogan [Wed, 23 Apr 2014 09:42:58 +0000 (02:42 -0700)]
whitespace
Dima Kogan [Wed, 23 Apr 2014 07:47:52 +0000 (00:47 -0700)]
Stylistic refactoring. No functional changes
Dima Kogan [Wed, 23 Apr 2014 07:06:45 +0000 (00:06 -0700)]
I now import functions using their linkage name
This is required for C++ methods
Dima Kogan [Wed, 23 Apr 2014 07:02:34 +0000 (00:02 -0700)]
enums are no longer assumed to have type 'int'
Dima Kogan [Tue, 22 Apr 2014 23:22:08 +0000 (16:22 -0700)]
reworked attr_numeric() to report failures
This whole file is thus copyright me
Dima Kogan [Tue, 22 Apr 2014 22:15:55 +0000 (15:15 -0700)]
added a disabled stub for complex float support
Dima Kogan [Tue, 22 Apr 2014 22:15:27 +0000 (15:15 -0700)]
a bit more debug printing
Dima Kogan [Tue, 22 Apr 2014 20:21:32 +0000 (13:21 -0700)]
style changes
- no spaces in ()
- hanging braces
- no camelCase
- collapsed long lines
Dima Kogan [Tue, 22 Apr 2014 19:58:13 +0000 (12:58 -0700)]
debug-printing via complain()
Dima Kogan [Tue, 22 Apr 2014 19:57:03 +0000 (12:57 -0700)]
added explicit support for some more types
- boolean constant
- long long double (as void)
- variable-length array (assuming len 0)
- union (as void)
- empty compile units
Dima Kogan [Tue, 22 Apr 2014 11:20:32 +0000 (04:20 -0700)]
added some optional debug printing
Dima Kogan [Tue, 22 Apr 2014 11:19:25 +0000 (04:19 -0700)]
tree dumping goes to stderr
Dima Kogan [Sat, 12 Apr 2014 03:39:34 +0000 (20:39 -0700)]
initial prototypes-from-dwarf implementation
Dima Kogan [Sun, 13 Apr 2014 04:59:26 +0000 (21:59 -0700)]
fixed typo: toplevel_format_lens() now uses ptr data when talking about pointers
Petr Machata [Tue, 6 May 2014 10:53:03 +0000 (12:53 +0200)]
Fix lookup of prototypes from non-leader threads
Petr Machata [Tue, 6 May 2014 10:23:54 +0000 (12:23 +0200)]
Add a couple TODO items
Petr Machata [Mon, 28 Apr 2014 09:50:49 +0000 (11:50 +0200)]
Improve wording on -e, -x, -l in ltrace.1
dann frazier [Wed, 12 Mar 2014 21:57:23 +0000 (15:57 -0600)]
Add missing #include stdio.h
Include stdio.h in files that use fprintf()
Signed-off-by: dann frazier <dannf@debian.org>
dann frazier [Wed, 12 Mar 2014 21:51:44 +0000 (15:51 -0600)]
add missing <stdint.h> include
aarch64's fetch.c uses the uintptr_t typedef defined by stdint.h without
including it. This doesn't currently cause a build failure because stdint.h
is indirectly included via proc.h.
Signed-off-by: dann frazier <dannf@debian.org>
Petr Machata [Fri, 28 Feb 2014 11:37:15 +0000 (12:37 +0100)]
Add --config to man, drop -X from options.c
Petr Machata [Thu, 13 Feb 2014 15:02:50 +0000 (16:02 +0100)]
Initialize struct process.e_machine and .e_class for secondary threads
Petr Machata [Wed, 5 Feb 2014 02:31:07 +0000 (21:31 -0500)]
Add some stuff to libc.so.conf
Petr Machata [Wed, 5 Feb 2014 01:46:07 +0000 (02:46 +0100)]
Update NEWS, README