112711afefcfcd43680c7c4aa8d38ef180e8811e |
|
10-Apr-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a port to Linux/TileGx. Zhi-Gang Liu (zliu@tilera.com) Valgrind aspects, to match vex r3124. See bug 339778 - Linux/TileGx platform support to Valgrind git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15080 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
b6ba6d288e6000a8f95fba1dea671e0b53e26043 |
|
20-Mar-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Do not reuse Creg_IA_* for s390. Add dedicated entries Creg_S390_... git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15025 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
205a42f1b48012de8b9633982d3a2d21cb26e006 |
|
17-Dec-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Comment change. Function vg_panic does not exist. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14816 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
3297124fa2116737066ac3cd709f18fdd5405163 |
|
23-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
2 pints later: more coregrind constification. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14659 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
518850bf0da07ed3e2244e307268ae0fd80e93a8 |
|
23-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Constify coregrind. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14656 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
1ef70c6f00ab1b50d1936f77037e9923d8ed8c59 |
|
22-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Change VG_(allocEltDedupPA) to return a pointer to const. The reason is that once an element has been allocated and added to the pool it must not be modified afterwards. See the documentation in pub_tool_deduppoolalloc.h The rest of the patch is ripple. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14654 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
c5af2ae7cec426721577d4a249d4a7b7c0eeb65e |
|
05-Sep-2014 |
mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Bug 338791 Handle debug alt dwz files that are relative to the debug file. readdwarf3 would only look for alt dwz files using the build-id. But alt files can be installed relative to the debug (or main) file. Fix find_debug_file to allow searching of relative files even if we don't want an ET_REL (rel_ok) file, and pass the build-id to open_debug_file so it can be checked. Add the debug file path to _DebugInfoFSM and set it in find_debug_file once opened. Pass the dbgname or filename as relative file to resolve an altfile in read_elf_debug_info when we ahava an debugaltlink_escn. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14464 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
4cace66777ca9ee73ea156210c04e9d4cc178395 |
|
13-Aug-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Reduce memory needed for symbols, by having the tocptr and local_ep (used for ppc64 platforms) #ifdef-ed and accessed by macros that becomes NOP on non ppc64 platforms. This decreases the debuginfo memory by about 2.5 Mb on a big 32 bit application. Note : doing that, some questions were encountered in the way tocptr and local_ep have (or do not have) to be copied/maintained in storage.c canonicaliseSymtab git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14273 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
666ee9df4c2b6d801b199b8168208dbb46573c9d |
|
09-Aug-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch implements reading the directory information for source files in the dwarf3 reader. Basically, the change consists in replacing in the DiInlLoc struct const HChar* filename; /* caller source filename */ by UInt fndn_ix; /* index in di->fndnpool of caller source dirname/filename */ A similar change is done in DiVariable struct, as the read_filename_Table code is shared between the inline info reader and the varinfo reader. Note however that outputting dirname in variable description is not done. Unclear if that is desired or not. It should be trivially doable however. Replacing filename by fndn_ix implies a bunch of semi-mechanical changes. The code to read the directory names is in the new function static XArray* read_dirname_xa (struct _DebugInfo* di, const HChar *compdir, Cursor *c, Bool td3 ) Note that readdwarf.c and readdwarf3.c have significant duplicated logic. Would be nice to integrate these 2 dwarf readers in one single reader. This function is directly inspired from an equivalent piece of code in readdwarf.c. Modified memcheck/tests/varinfo5.vgtest to test the dirname appears in the inlined functions. Impact on memory is neglectable (a few Kb on a big executable). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14245 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
582d58245637ab05272d89fb94b12fd0f18fa0f8 |
|
08-Aug-2014 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This commit is for Bugzilla 334834. The Bugzilla contains patch 2 of 3 to add PPC64 LE support. The other two patches can be found in Bugzillas 334384 and 334836. POWER PC, add the functional Little Endian support, patch 2 The IBM POWER processor now supports both Big Endian and Little Endian. The ABI for Little Endian also changes. Specifically, the function descriptor is not used, the stack size changed, accessing the TOC changed. Functions now have a local and a global entry point. Register r2 contains the TOC for local calls and register r12 contains the TOC for global calls. This patch makes the functional changes to the Valgrind tool. The patch makes the changes needed for the none/tests/ppc32 and none/tests/ppc64 Makefile.am. A number of the ppc specific tests have Endian dependencies that are not fixed in this patch. They are fixed in the next patch. Per Julian's comments renamed coregrind/m_dispatch/dispatch-ppc64-linux.S to coregrind/m_dispatch/dispatch-ppc64be-linux.S Created new file for LE coregrind/m_dispatch/dispatch-ppc64le-linux.S. The same was done for coregrind/m_syswrap/syscall-ppc-linux.S. Signed-off-by: Carl Love <carll@us.ibm.com> git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14239 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
cae0cc22b83ffb260ee8379e92099c5a701944cb |
|
08-Aug-2014 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This commit is for Bugzilla 334384. The Bugzilla contains patch 1 of 3 to add PPC64 LE support. The other two patches can be found in Bugzillas 334834 and 334836. The commit does not have a VEX commit associated with it. POWER PC, add initial Little Endian support The IBM POWER processor now supports both Big Endian and Little Endian. This patch renames the #defines with the name ppc64 to ppc64be for the BE specific code. This patch adds the Little Endian #define ppc64le to the Additionally, a few functions are renamed to remove BE from the name if the function is used by BE and LE. Functions that are BE specific have BE put in the name. The goals of this patch is to make sure #defines, function names and variables consistently use PPC64/ppc64 if it refers to BE and LE, PPC64BE/ppc64be if it is specific to BE, PPC64LE/ppc64le if it is LE specific. The patch does not break the code for PPC64 Big Endian. The test files memcheck/tests/atomic_incs.c, tests/power_insn_available.c and tests/power_insn_available.c are also updated to the new #define definition for PPC64 BE. Signed-off-by: Carl Love <carll@us.ibm.com> git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14238 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
6df28a8ede81f7392a7b9b5d777980063f974359 |
|
31-Jul-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
cfsi_m_ix array should only be indexed according to sizeof_m_ix, so decalre as a void*. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14218 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
ade2eddf567a868bafad9110ed92acf7373a972b |
|
31-Jul-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for stack unwinding using the ARM32 specific EXIDX format. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14217 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
59e1f3c79e870a978d24add86db6d8c5450c8b63 |
|
14-Jul-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch decreases significantly the memory needed to store the lineloc info. On a big executable, the trunk needs: dinfo: 134873088/71438336 max/curr mmap'd, 134607808/66717872 max/curr With the patch, we have: dinfo: 99065856/56836096 max/curr mmap'd, 97883776/51663656 max/curr So, peak dinfo memory decreases by about 36Mb, and final by 15Mb. (for info, valgrind 3.9.0 uses dinfo: 158941184/109666304 max/curr mmap'd, 156775944/107590656 max/curr So, compared to 3.9.0, dinfo peak decreases by about 40%, and the final memory is divided by more than 2). The memory decrease is obtained by: * using a dedup pool to store filename/dirname pair for the loctab source/line information. As typically, there is not a lot of such pairs, typically a UShort is good enough to identify a fn/dn pair in a dedup pool. To avoid losing memory due to alignment, the fndn indexes are stored in a "parallel" array to the DiLoc loctab array, with entries having 1, or 2 or 4 bytes according to the nr of fn/dn pairs in the dedup pool. See priv_storage.h comments for details. (there was a extensible WordArray local implementation in readdwarf.c. As with this change, we use an xarray, the local implementation was removed). * the memory needed for --read-inline-info is slightly decreased (-2Mb) by removing the (unused) dirname from the DiInlLoc struct. Handling dirname for inlined function caller implies to rework the dwarf3 parser read_filename_table common to the var and inlinfo parser. Waiting for this to be done, the dirname component is removed from DiInlLoc. * the stabs reader (readstabs.c) is broken since 3.9.0. For this change, the code has been updated to make it compile with the new DiLoc/FnDn dedup pool. As the code is completely broken, a vg_assert(0) has been put at the begin of the stabs reader. * the pdb reader (readpdb.c) has been trivially updated and should still work. It has not been tested (how do we test this ?). A follow-up patch will be done to avoid doing too many calls to ML_(addFnDn) : instead of having one call per ML_(addLineInfo), one should have a single call done when reading the filename table. This has also be tested in an outer/inner setup, to verify no memory leak/bugs. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14158 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
588cd4ebce3305d0cf91896c1f6322ef9775d6c1 |
|
08-Jul-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
OSX 10.9/10.8: Debuginfo reading FSM: enable recording of r-- mappings so as to enable arrival at acceptance states via calls to VG_(di_notify_vm_protect). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14139 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
68654f6299044fe7f3df7d6617ddea5344d9b0ce |
|
05-Jul-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Small comment fix for the UInt* cfsi_m index : 4 instead of 3 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14130 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
5c3dba227192de63d86f65ec7d9597c132818c37 |
|
05-Jul-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch decreases significantly the memory needed to store the cfsi info. On a big executable, the trunk needs: dinfo: 155844608/106737664 max/curr mmap'd 155572624/102276760 max/curr With the patch, we have: dinfo: 134873088/70389760 max/curr mmap'd 134607808/66717512 max/curr So, peak dinfo memory decreases by 21Mb, and final by 36Mb. The memory decrease is obtained by: * using a dedup pool to store the machine dependent part (cfsi_m) of the cfsi information as this information is highly duplicated. For x86 and arm64, the duplication factor of cfsi machine dependent part is very high (up to a factor 60). For arm64, it is more like a factor 3. A 'variable size' (1, 2 or 4 bytes) is automatically used to identify the cfsi_m, if there is less than or more than 255/64K different cfsi_m. * not storing explicitely the length of a range for which a cfsi_m is to be used: in a large majority of the cases, ranges are consecutive, and so the end of a range is just one byte before the start of the next range. So, we do not store the length of the ranges. If there is a hole between 2 ranges, the hole is stored explicitely as a range in which we have no cfsi_m information. On x86 and amd64, we have quite some holes (something like one hole every 7 cfsi). On arm64, we have very few holes (less than one hole every 50 cfsi). Even with the nr of holes on x86/amd64, it is more memory efficient to store the holes rather than to store the length of each cfsi. * Merging consecutive ranges that have the same cfsi_m info: Many cfsi are "mergeable": there is no hole between 2 cfsi, and their machine dependent part is identical (I guess the unwind info needed by valgrind is subset of the full unwind info, and so, the cfsi entries are not merged by the compiler, but can be merged for simple unwind). Depending on the platform (x86, amd64, arm64) and of the library/object file, we can have a significant nr of mergeable entries. The patch is not very small, but a lot is mechanical changes. The patch has been compiled and tested on x86/amd64/ppc32/ppc64 (but ppc does not use cfsi so that just verifies it compiles). It has been compiled on arm64, and "tested" by launching valgrind on one executable. It has not been compiled on s390 and mips. With some luck, maybe it will compile on these platforms. And if that uses the whole provision of luck for 2014, it might even work on these platforms :). If it does not compile, the fix should be straightforward. Runtime problems might be more tricky (but arm64 "worked out of the box" once x86/amd64 were ok). This has also be tested in an outer/inner setup, to verify no memory leak/bugs. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14129 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
0b9d0646949bd382758763664d3bf2d6115993ae |
|
30-Jun-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Implement VG_(arena_realloc_shrink) similar to realloc, but can only decrease the size of a block, does not change the address, does not need to alloc another block and copy the memory, and (if big enough) makes the excess memory available for other allocations. VG_(arena_realloc_shrink) is then used for debuginfo storage.c (replacing an allocation + copy). Also use it in the dedup pool, to recuperate the unused memory of the last pool. This also allows to re-increase the string pool size to the original 3.9.0 value of 64Kb. All this slightly decrease the peak and in use memory of dinfo. VG_(arena_realloc_shrink) will also be used to implement (in another patch) a dedup pool which "numbers" the allocated elements. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14122 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
a0a73939b0398b6608fd6dbde49820ce6530d12c |
|
15-Jun-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch implements the support needed for stacktraces showing inlined function calls. See 278972 valgrind stacktraces and suppression do not handle inlined function call debuginfo Reading the inlined dwarf call info is activated using the new clo --read-inline-info=yes Default is currently no but an objective is to optimise the performance and memory in order to possibly set it on by default. (see below discussion about performances). Basically, the patch provides the following pieces: 1. Implement a new dwarf3 reader that reads the inlined call info 2. Some performance improvements done for this new parser, and on some common code between the new parser and the var info parser. 3. Use the parsed inlined info to produce stacktrace showing inlined calls 4. Use the parsed inlined info in the suppression matching and suppression generation 5. and of course, some reg tests 1. new dwarf3 reader: --------------------- Two options were possible: add the reading of the inlined info in the current var info dwarf reader, or add a 2nd reader. The 2nd approach was preferred, for the following reasons: The var info reader is slow, memory hungry and quite complex. Having a separate parsing phase for the inlined information is simpler/faster when just reading the inlined info. Possibly, a single parser would be faster when using both --read-var-info=yes and --read-inline-info=yes. However, var-info being extremely memory/cpu hungry, it is unlikely to be used often, and having a separate parsing for inlined info does in any case make not much difference. (--read-var-info=yes is also now less interesting thanks to commit r13991, which provides a fast and low memory "reasonable" location for an address). The inlined info parser reads the dwarf info to make calls to priv_storage.h ML_(addInlInfo). 2. performance optimisations ---------------------------- * the abbrev cache has been improved in revision r14035. * The new parser skips the non interesting DIEs (the var-info parser has no logic to skip uninteresting DIEs). * Some other minor perf optimisation here and there. In total now, on a big executable, 15 seconds CPU are needed to create the inlined info (on my slow x86 pentium). With regards to memory, the dinfo arena: with inlined info: 172281856/121085952 max/curr mmap'd without : 157892608/106721280 max/curr mmap'd, So, basically, inlined information costs about 15Mb of memory for my big executable (compared to first version of the patch, this is already using less memory, thanks to the strpool deduppoolalloc. The needed memory can probably be decreased somewhat more. 3. produce better stack traces ------------------------------ VG_(describe_IP) has a new argument InlIPCursor *iipc which allows to describe inlined function calls by doing repetitive calls to describe_IP. See pub_tool_debuginfo.h for a description. 4. suppression generation and matching -------------------------------------- * suppression generation now also uses an InlIPCursor *iipc to generate a line for each inlined fn call. * suppression matching: to allow suppression matching to match one IP to several function calls in a suppression entry, the 'inputCompleter' object (that allows to lazily generate function or object names for a stacktrace when matching an error with a suppression) has been generalised a little bit more to also lazily generate the input sequence. VG_(generic_match) has been updated so as to be more generic with respect to the input completer : when providing an input completer, VG_(generic_match) does not need anymore to produce/compute any input itself : this is all delegated to the input completer. 5. various regtests ------------------- to test stack traces with inlined calls, and suppressions of (some of) these errors using inlined fn calls matching. Work still to do: ----------------- * improve parsing performance * improve the memory overhead. * handling the directory name for files of the inlined function calls is not yet done. (probably implies to refactor some code) * see if m_errormgr.c *offsets arrays cannot be managed via xarray git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14036 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
7293d2530f8c60c1060f9f003e214cc341d35266 |
|
14-Jun-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch adds a 'de-duplicating memory pool allocator': include/pub_tool_deduppoolalloc.h coregrind/pub_core_deduppoolalloc.h coregrind/m_deduppoolalloc.c and uses it (currently only) for the strings in m_debuginfo/storage.c The idea is that such ddup pool allocator will also be used for other highly duplicated information (e.g. the DiCFSI information), where significant gains can also be achieved. The dedup pool for strings also decreases significantly the memory needed by the read inline information (patch still to be committed, see bug 278972). When testing with a big executable (tacot_process), this reduces the size of the dinfo arena from trunk: 158941184/109760512 max/curr mmap'd, 156775944/107882728 max/curr, to ddup: 157892608/106614784 max/curr mmap'd, 156362160/101414712 max/curr (so 3Mb less mmap-ed once debug info is read, 1Mb less mmap-ed in peak, 6Mb less allocated once debug info is read). This is all gained due to the string which changes from: trunk: 17,434,704 in 266: di.storage.addStr.1 to ddup: 10,966,608 in 750: di.storage.addStr.1 (6.5Mb less memory used by strings) The gain in mmap-ed memory is smaller due to fragmentation. Probably one could decrease the fragmentation by using bigger size for the dedup pool, but then we would lose memory on the last allocated pool (and for small libraries, we often do not use much of a big pool block). Solution might be to increase the pool size but have a "shrink_block" operation. To be looked at in the future. In terms of performance, startup of a big executable (on an old pentium) is not influenced significantly (something like 0.1 seconds on 15 seconds startup for a big executable, on a slow pentium). The dedup pool uses a hash table. The hash function used currently is the VG_(adler32) check sum. It is reported (and visible also here) that this checksum is not a very good hash function (many collisions). To have statistics about collisions, use --stats -v -v -v As an example of the collisions, on the strings in debug info of memcheck tool on x86, one obtain: --4789-- dedupPA:di.storage.addStr.1 9983 allocs (8174 uniq) 11 pools (4820 bytes free in last pool) --4789-- nr occurences of chains of len N, N-plicated keys, N-plicated elts --4789-- N: 0 : nr chain 6975, nr keys 0, nr elts 0 --4789-- N: 1 : nr chain 3670, nr keys 6410, nr elts 8174 --4789-- N: 2 : nr chain 1070, nr keys 226, nr elts 0 --4789-- N: 3 : nr chain 304, nr keys 100, nr elts 0 --4789-- N: 4 : nr chain 104, nr keys 84, nr elts 0 --4789-- N: 5 : nr chain 72, nr keys 42, nr elts 0 --4789-- N: 6 : nr chain 44, nr keys 34, nr elts 0 --4789-- N: 7 : nr chain 18, nr keys 13, nr elts 0 --4789-- N: 8 : nr chain 17, nr keys 8, nr elts 0 --4789-- N: 9 : nr chain 4, nr keys 6, nr elts 0 --4789-- N:10 : nr chain 9, nr keys 4, nr elts 0 --4789-- N:11 : nr chain 1, nr keys 0, nr elts 0 --4789-- N:13 : nr chain 1, nr keys 1, nr elts 0 --4789-- total nr of unique chains: 12289, keys 6928, elts 8174 which shows that on 8174 different strings, we have only 6410 strings which have a unique hash value. As other examples, N:13 line shows we have 13 strings mapping to the same key. N:14 line shows we have 4 groups of 10 strings mapping to the same key, etc. So, adler32 is definitely a bad hash function. Trials have been done with another hash function, giving a much lower collision rate. So, a better (but still fast) hash function would probably be beneficial. To be looked at ... git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14029 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
821283b2110420321fd3f60afcc799b287788c68 |
|
13-Jan-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Initial implementation of CFI based stack unwinding for arm64-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13774 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
f0c1250e324f6684757c6a15545366447ef1d64f |
|
12-Jan-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for ARMv8 AArch64 (the 64 bit ARM instruction set). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13770 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 |
|
18-Oct-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates (20XY-2012 ==> 20XY-2013) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
535fb1b49a80f2e880f755ee618381de3e222ddf |
|
15-Sep-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix coregrind header files such that they can be included without having to worry what other header files may have to be included beforehand. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13549 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
5d616dfbb8439dfd51a40ddf1dba970938baa1eb |
|
02-Jul-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge r13421:HEAD from branches/DISRV. This merges the debuginfo-server stuff into the trunk. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13440 a5019735-40e9-0310-863c-91ae7b9d1cf9
|
4df0bfc0614379192c780c944415dc420d9cfe8e |
|
28-Feb-2013 |
petarj <petarj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
mips: adding MIPS64LE support to Valgrind Necessary changes to Valgrind to support MIPS64LE on Linux. Minor cleanup/style changes embedded in the patch as well. The change corresponds to r2687 in VEX. Patch written by Dejan Jevtic and Petar Jovanovic. More information about this issue: https://bugs.kde.org/show_bug.cgi?id=313267 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13292 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
6bd9dc18c043927c1196caba20a327238a179c42 |
|
23-Nov-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changes to allow compilation with -Wwrite-strings. That compiler option is not used for testcases, just for valgrind proper. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13137 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
1636d33c13958b9c0e7d3059cdd5005746418eb2 |
|
15-Nov-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Char/HChar fixups for m_debuginfo and m_gdbserver. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13122 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
40628facff2285b0fce592381c6e26fdcd2a1252 |
|
21-Sep-2012 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Implement some extra DW_OPs - more constants and some unary operators. Patch from Mark Wielaard on BZ#307038. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13010 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
f6716dd8f025c9ace67541f3360d7f4523496d8a |
|
21-Sep-2012 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rename CfiOp to CfiBinop in preparation for adding unary operators. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13009 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
db3f3e6e7bde198592d44642a0da2613a89a8eb5 |
|
01-Sep-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Guard against negative symbol sizes in ELF symbol tables, which lead to assertion failures in ML_(find_rx_mapping). Most closely related to #304980. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12923 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
03f8d3fc25f5a45c5826259d1b33b7f310117279 |
|
05-Aug-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to include 2012. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
54c45db2f978055aeca91aaccb05aac825523e6c |
|
13-Jul-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Clean up the PDB reader somewhat, mostly in the area of biasing. #296318 comment 9. (Jiri Hruska, jirka@fud.cz) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12736 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
6b5625bb609b154766d2e138b61e15655f60b710 |
|
13-Jul-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Allow multiple rw and rx mappings in the ELF debuginfo reader. Fixes #296318 (patch on comment 8). (Jiřà Hruška, jirka@fud.cz) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12735 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
5db15403e889d4db339b342bc2a824ef0bfaa654 |
|
07-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic, mips-valgrind@rt-rk.com, Bug 270777. Valgrind: changes to existing files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12616 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
f1e1aa691d7a2f0f2f933daf060bec5ae6938705 |
|
12-Mar-2012 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix leak in debuginfo.c di->soname was not freed, so was leaked when debug info is removed. free(soname) added in free_Debuginfo, after having verified and then ensured that all soname are allocated in dinfo. regtested on deb6/amd64 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12442 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
ec062e8d96a361af9905b5447027819dfbfee01a |
|
23-Oct-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update all copyright dates, from 20xy-2010 to 20xy-2011. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
796e4b25100561a9e953cfe4dad83130b0153ce5 |
|
26-Sep-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Re-enable the use of loctab (line number table) trimming, for a 5% to 10% reduction in debuginfo storage requirements for large applications on 32 bit platforms. This code had been present since the MacOSX port was merged but had been disabled. Remove equivalent code for shrinking the symbol tables since they are much (4 x) smaller than the line number tables, trimming them is hardly worth the effort. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12050 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
731f9cf9fd4d507b44f1a0fdc2d3b8e8efae02e3 |
|
21-Sep-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add initial support for Mac OS X 10.7 (Lion). Tracked by bug #275168. * configure.in support * new supp file darwin11.supp * comment out many intercepts in mc_replace_strmem.c and vg_replace_malloc.c that are apparently unnecessary for Darwin * add minimal handling for the following new syscalls and mach traps: mach_port_set_context task_get_exception_ports getaudit_addr psynch_mutexwait psynch_mutexdrop psynch_cvbroad psynch_cvsignal psynch_cvwait psynch_rw_rdlock psynch_rw_wrlock psynch_rw_unlock psynch_cvclrprepost * wqthread_hijack on amd64-darwin: deal with tst->os_state.pthread having an apparently different offset, which caused an assertion failure * m_debuginfo: for 32 bit processes on Lion, use the DebugInfoFSM cleanup added in r12041/12042 to handle apparently new dyld behaviour, which is to map text areas r-- first and only vm_protect them later to r-x. The following cleanups remain to be done * remove apparently pointless, commented out wrapper macro invokations in mc_replace_strmem.c, eg //MEMMOVE(VG_Z_DYLD, memmove) (or determine that they are still necessary, and uncomment) * ditto in vg_replace_malloc.c, plus general VGO_darwin cleanups there * write proper syscall wrappers for mach_port_set_context task_get_exception_ports getaudit_addr psynch_mutexwait psynch_mutexdrop psynch_cvbroad psynch_cvsignal psynch_cvwait psynch_rw_rdlock psynch_rw_wrlock psynch_rw_unlock psynch_cvclrprepost These are currently just no-ops and may be causing Memcheck to report false undef-value errors * figure out why it doesn't work properly unless built with gcc-4.2 on Lion. gcc-4.2 is the "normal" gcc (i686-apple-darwin11-gcc-4.2.1). Plain gcc is the hybrid gcc-front-end clang-back-end thing (i686-apple-darwin11-llvm-gcc-4.2). Whereas on Snow Leopard, plain gcc is the normal gcc. The symptoms of the failure are that wqthread_hijack in syswrap-amd64-linux.c hits this /*NOTREACHED*/ vg_assert(0); right at the end (you need a pretty complex threaded app to trigger this), which makes me think that either ML_(wqthread_continue_NORETURN) or call_on_new_stack_0_1 do return, which they are not expected to. * figure out if some of the uninitialised value errors reported in system libraries on are caused by Memcheck being confused by LLVM generated code, as per bug #242137 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12043 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
a5acac39bf3be7546222b1316faee5ee524be0d1 |
|
20-Sep-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
A refactoring change; no functional effect. struct _DebugInfo contains a bunch of fields which are used as a very simple state machine that observes mmap calls and decides when to read debuginfo for the associated file. This change moves these fields into their own structure, struct _DebugInfoFSM, for cleanness, so as to make it clear they have a common purpose. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12041 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
0f4126c9b5898dde89473d5993c98dd4d41ee8b7 |
|
20-Sep-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Get rid of DebugInfo::memname, a hangover from the now-removed AIX5 support. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12040 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
a5cace0c2a3e212931badbf6398a0cd98393121a |
|
15-Aug-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove the assumption, in m_debuginfo, that each address is associated with only one symbol. Instead, allow an address to have arbitrarily many names. This reflects reality better, particularly for systemy libraries such as glibc and ld.so, and is background work needed for fixing #275284. This is not in itself a fix for #275284. A followup commit to un-break compilation on OSX will follow shortly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11981 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
0b98239b3e0abd430dbc913454d63c7e3d8c8b12 |
|
05-Jul-2011 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Implement some extra DWARF ops that gcc 4.6.1 seems to use. Fixes #275284. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11856 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
6e9de463ef677f093e9f24f126e1b11c28cf59fd |
|
28-Jun-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Delete the AIX5 port. The last release this worked for is 3.4.1, and then only on AIX 5.2 and 5.3. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
452e89a9f847975609b3ad318943830f2cce841c |
|
30-May-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle ELF objects with two .eh_frame sections. This fixes a problem handling libxul.so when linked by gold on x86_64. (n-i-bz) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11790 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
b5b87408c0c99f9f6938d8cd921e2a5f420577c4 |
|
07-Mar-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind side components. (Florian Krohm <britzel@acm.org> and Christian Borntraeger <borntraeger@de.ibm.com>). Fixes #243404. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
fa5ce5616a17e79828fbc79f30b02b5085151e3c |
|
24-Sep-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
On arm-linux, add r7 to the set of registers that the CFI unwinder knows how to unwind. This is important when unwinding Thumb code the CFA is often stated as being at some offset from r7. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11377 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
9eecbbb9a9cbbd30b903c09a9e04d8efc20bda33 |
|
03-May-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to 2010. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
f5f1e12bd89408917c1ffeb22ec23a1fd11b7a23 |
|
02-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Various minor fixups to make ppc32/64-linux work again following recent ARM-Linux merge. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10992 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
3026f71684a930286186aa10fef266c304672e8f |
|
01-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make the Dwarf3 CFI stack unwinding machinery work on arm-linux too. This is a first step towards making not be completely x86/amd64-linux specific, and so replaces some x86/amd64-specific stuff with more general constructions: * structure 'DiCfSI', into which the info is summarised, has been made target-specific (ugh), since the sets of registers to be unwound differ on different targets. * enum CfiReg and the CFIC_ constants have been expanded accordingly, to handle both arm and x86/amd64 registers. The abbreviation "IA" (Intel Architecture) has been used in a few places where the x86 and amd64 definitions are shared. * the CFI reader/summariser in readdwarf.c has been expanded & generalised appropriately. * the DiCfSI evaluator in debuginfo.c, VG_(use_CFI_info), has also been generalised appropriately. The main change is that instead of passing around triples of (IP, SP, BP) values, a new structure 'D3UnwindRegs' is passed around instead. This is defined differently for IA and ARM and succeeds in hiding at least some of the differences where we don't care about them. Note also, D3UnwindRegs duplicates, in purpose and structure, structure 'RegSummary' in priv_d3basics.h. This will be tidied up in due course. This commit almost certainly breaks stack unwinding on amd64-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10986 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
3c9cf3442185b5891e15450d6e3058aeff6796fe |
|
12-Nov-2009 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Various improvements to DWARF handling to cope with changes in recent versions of gcc as shipped with Fedora 12. Specific changes include: - Vastly increase the number of opcodes we understand how to evaluate when processing a location expression. - Process frame unwind data from the debug_frame ELF section as well as the eh_frame section. - Handle version 3 CIEs in frame unwind data. - Handle the compact form of DW_AT_data_member_location which just gives a constant offset from the start of it's base type instead of a full location expression. Based on patches from Jakub Jelinek on bugs #210479 and #210566. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10939 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
d264514038b82ea069f84478121c2e628b1ae0d4 |
|
29-Oct-2009 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for ELF indirect functions. These are symbols of type STT_GNU_IFUNC which, instead of pointing directly at the function, point at a routine which will return the address of the real function. Redirection of indirect functions is handled by valgrind as follows: - When a redirection specification matches an indirect function symbol an active redirection is added in the normal way, but with the isIFunc flag set. - When a call is made to an address which matches an active redirection with the isIFunc flag set the call is redirected, but not to the target address of the redirection - instead it is sent to a small wrapper routine that is preloaded into the client. - The wrapper routine calls the original client routine and collects the result, which it reports to valgrind using a client request, and then returns the result to the caller. - When valgrind gets the client request it looks up the active redirection for the indirect function and then adds a new active redirection which redirects from the address returned by the indirection function to the redirection target. This new redirection does not have the isIFunc flag set so behaves as a normal redirection. In addition to the above we also add a few new redirections to memcheck to capture internal calls made by glibc to things like strlen, as these internal calls do not go through the indirect function and instead go direct to the chosen implementation. Based on a patch from Dodji Seketeli and comments from Jakub Jelinek, this commit closes bug 206013. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10920 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
f76d27a697a7b0bf3b84490baf60623fc96a23af |
|
28-May-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge the DARWIN branch onto the trunk. I tried using 'svn merge' to do the merge but it did a terrible job and there were bazillions of conflicts. So instead I just took the diff between the branch and trunk at r10155, applied the diff to the trunk, 'svn add'ed the added files (no files needed to be 'svn remove'd) and committed. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10156 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
b2882a6dbf9d583a4758516d728420f439bafc0f |
|
25-May-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
DARWIN sync: add a comment. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10149 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
bcaa2c8a0a0a30e67bfdfd4a140fb886f382e260 |
|
27-Apr-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Comment-only change: add comments pertaining to revs 9329 and 9469, which were a fix for #185816. These commits added _debug_{svma,bias} fields to struct _DebugInfo. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9647 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
c8259b85b701d25d72aabe9dc0a8154517f96913 |
|
23-Apr-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for reading Windows PDB debug info (symbols and line numbers) when Valgrind is running Wine. Modified version of a patch by John Reiser (vgsvn+wine-load-pdb-debuginfo.patch) with extensions to read a second format of line number tables. Wine uses a new client request, VG_USERREQ__LOAD_PDB_DEBUGINFO, to tell Valgrind when to read PDB info. Wine's implementation of module loading is vastly different from that used by ld-linux.so, and it is too difficult to recognize what is going on just by observing the calls to mmap and mprotect. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9580 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
9f207460d70d38c46c9e81996a3dcdf90961c6db |
|
10-Mar-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Updated copyright years. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
402c9eed11b9b60c6e134d05db938e395466cf99 |
|
09-Mar-2009 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Keep track of the svma and bias values for the debug data separately as they may be different to those for other sections of the ELF file if we have separated debug information and the main file has been prelinked since they were split. Fixes bug #185816. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9329 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
160d5a82d2d5d7d0964140dea17751c1daa3315e |
|
22-Jan-2009 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle the rodata and sbss sections and cope with variables that are in those sections. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9024 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
c4431bfe04c7490ea2d74939d222d87f13f30960 |
|
15-Jan-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Introduce a new type, PtrdiffT. Replace lots of uses of OffT (all those that are memory offsets) with PtrdiffT; OffT should only be used for file sizes and offsets. Change Off64T from a ULong to a Long, as it should be. Replace some uses of ULong in the address space manager with Off64T to match. Also add a comment explaining the meanings of the basic types like Addr, OffT, SizeT, etc. Also fix the prototype for VG_(pread) -- the last arg is an OffT, not an Int. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8959 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
f98e1c03ce4bea1fb092cdea5571c41f29f6df9b |
|
25-Oct-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge Helgrind from branches/YARD into the trunk. Also includes some minor changes to make stack unwinding on amd64-linux approximately twice as fast as it was before. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8707 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
9c606bd8634cd6b67bb41fa645b5c639668cfa2d |
|
18-Sep-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge all remaining changes from branches/PTRCHECK. These are some relatively minor extensions to m_debuginfo, a major overhaul of m_debuginfo/readdwarf3.c to get its space usage under control, and changes throughout the system to enable heap-use profiling. The majority of the merged changes were committed into branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and 8161. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
59a2d18d0ddfa241850017252b0804d469187d79 |
|
23-Aug-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rework storage management in the Dwarf3 type and variable reader, to try and reduce its space consumption. This change changes some long linked lists into XArrays instead. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8540 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
092b6268cc4a38ae9ee41d1e3355937536ddc579 |
|
25-May-2008 |
bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
- Added support for querying information about .plt sections. - Added support for .got.plt sections. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8127 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
b8b79addf04dd5d0b558916e26df0b1927cbd758 |
|
03-Mar-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in the DATASYMS branch. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7540 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
4d474d086188fd1f29fa97dbd84d8ea2e589a9b8 |
|
11-Feb-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates ("200X-2007" --> "200X-2008"). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
7888e2204fff6e7429236b4227ed16594e7743b9 |
|
28-Feb-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle DW_CFA_def_cfa_expression; also DW_OP_mul. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6627 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
72427fa91a5e05e3323b5a8a407bd8d7b04c75cc |
|
27-Feb-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add limited support for DWARF3 'expressions' in stack-unwind (CFI) info (DW_CFA_def_cfa_expression, DW_CFA_expression, DW_CFA_val_expression). Mechanism to support all of these is in place although only DW_CFA_val_expression is currently connected up. This is really nasty. The basic idea is to partially evaluate each expression at the debuginfo-reading time by running it on a stack machine in which each stack element is an expression tree. If the expression can be 'run' successfully, the tree (dag, really) remaining at the top of the stack is massaged and put into the DiCfSI record for that address range. At unwind time the tree is evaluated if needed. Such cases are in fact extremely rare and so the vast majority of unwindings use the same mechanism as before. As a result of all this: * some obscure cases in glibc-2.5's libpthread.so unwind when they didn't before * --debug-dump=frames produces identical output to that of readelf for libc-2.5.so and associated libpthread.so * All the action centers around the new type CfiExpr, which is a union expression-tree type in the same style as IRExpr et al * Many dark corners of the CFI reader have been looked at and (re-)validated git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6620 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
f767d967b9ef331dcd7d0cd4584f6570cd829333 |
|
12-Feb-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Essentially non-functional tidyings and improvements to debuginfo reading. Two sets of changes: * New flags for debugging the readers. --debug-dump=syms --debug-dump=line --debug-dump=frames These (currently accepted but nonfunctional) are intended to create output in the style of (that is, identical to) /usr/bin/readelf --syms /usr/bin/readelf --debug-dump=line /usr/bin/readelf --debug-dump=frames respectively. The plan is that flaws in these readers can then be easily found by diff-ing the output against that from readelf. Also, a new flag --trace-symtab-patt=<object filename pattern> which is used to limit all debuginfo-related debug info to the set of shared object names matching the given pattern. This facilitates extracting the debuginfo details of one specific shared object, which is usually what is required, rather than having to wade through megabytes of junk from every object in the process. * Propagate the avma/svma/image address-naming scheme (as described at the top of debuginfo.c) through large parts of readelf.c and readdwarf.c. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6588 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
50a3aa1c52eda3795abbb4a72da6840124a9d844 |
|
11-Jan-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
In struct _SegInfo, rename field 'size' to 'text_size' so as to be consistent with all the other 'foo_start_avma'/'foo_size' pairings. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6508 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
0bf42fcdf72683d499daf6429a2785103ab59c63 |
|
11-Jan-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
In struct _SegInfo, rename field 'offset' to 'text_bias'. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6507 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
c6d3f6f0aec8607dded979fd15a9876a486ec682 |
|
11-Jan-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Non-functional change: rename a bunch of variables and field names that hold various kinds of addresses during debuginfo reading, so as to make it easier to understand. See comment at top of debuginfo.c. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6506 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
9ebd6e0c607fa30301b1325874eb8de871c21cc5 |
|
08-Jan-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
4ee4f98c6dd3dd9517954efc628753bf46811d2d |
|
17-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge r6129: Changes to support XCOFF: - allow modules to have 'member names' as well as file names. A member name is a "foo.o" name inside a "bar.a"; necessary as AIX keeps all its dynamic libraries in .a files. - rename the type RiLoc to DiLoc (this holds a line number indication). No idea why it was called RiLoc in the first place. - trace changes in type SysRes - implement VG_(di_aix5_notify_segchange) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6266 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
534e2019b34f2be1ae10a3b35961704030617893 |
|
12-Apr-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Properly handle external debuginfo (.gnu_debuglink) for stripped and prelinked libraries (patch from L. David Baron). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5841 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|
eadcd86d1b0f59efed44c162ef4378ccfb528290 |
|
04-Apr-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Cleanup/restructure m_debuginfo, as described in coregrind/m_debuginfo/README.txt. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5823 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_debuginfo/priv_storage.h
|