Jonathan R. Madsen [Wed, 11 May 2022 18:23:34 +0000 (13:23 -0500)]
Docker: make build.sh verbose, fix file copy bug in Dockerfile.test (#1273)
- remove old code before copying code into testing container
- build with verbosity in build.sh (this helps when build errors occur)
Tim Haines [Fri, 6 May 2022 20:52:11 +0000 (15:52 -0500)]
Remove endian CMake check (#1270)
The usage of the macros was removed by
d233ae759 in 2020.
Tim Haines [Thu, 5 May 2022 19:38:54 +0000 (14:38 -0500)]
Update and enforce formatting of CMake files (#1267)
Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>
Tim Haines [Thu, 5 May 2022 05:27:45 +0000 (00:27 -0500)]
Fix bug in processing library paths in FindLibIberty.cmake (#1266)
This was originally part of #1263
Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>
John Mellor-Crummey [Tue, 3 May 2022 18:33:58 +0000 (13:33 -0500)]
Fix decoding of DWARF expressions into machine registers for Intel GPUs (#1262)
We ignore the encoding as we do for all of the other GPUs. This case was missing and so hit the assert.
Tim Haines [Wed, 27 Apr 2022 04:03:56 +0000 (23:03 -0500)]
Docker: don't use autamus cache (#1259)
The public keys have been removed.
Tim Haines [Tue, 12 Apr 2022 19:06:30 +0000 (14:06 -0500)]
Remove unused build options (#1253)
* Remove BUILD_DOCS
This isn't sufficient to create the documentation as some of it is
contained in MS Word files.
* Remove BUILD_TARBALLS
We don't distrubute tarballs anymore. That's handled by GitHub.
kupsch [Fri, 8 Apr 2022 22:12:20 +0000 (17:12 -0500)]
Fix dyninstAPI_RT files to build with older glibc (#1252)
Replace feature test macro _DEFAULT_SOURCE with _GNU_SOURCE to support older version of glibc
Xiaozhu Meng [Thu, 7 Apr 2022 21:24:10 +0000 (16:24 -0500)]
Redo finalization to get correct function boundiaries when (#1249)
there are many tail call correction
Tim Haines [Thu, 7 Apr 2022 20:44:55 +0000 (15:44 -0500)]
Fix format string errors in stackwalk/callchecker.C (#1250)
These are only present when SW_ANALYSIS_STEPPER=OFF.
James A. Kupsch [Wed, 6 Apr 2022 21:26:02 +0000 (16:26 -0500)]
Make dyninstAPI_RT files build with standard C (#1246)
- use same language standards as the rest of Dyninst
- define _DEFAULT_SOURCE in some dyninstAPI_RT source files so functions
and macros used are defined when using standard C
James A. Kupsch [Mon, 4 Apr 2022 21:38:49 +0000 (16:38 -0500)]
Add cmake options for C/C++ language standards (#1246)
Add cmake options to set C/C++ language standard versions used to build
to facilitate testing.
- DYNINST_C_LANGUAGE_STANDARD cmake option: C Standard version
- DYNINST_CXX_LANGUAGE_STANDARD cmake option: C++ Standard version
Tim Haines [Thu, 7 Apr 2022 16:20:58 +0000 (11:20 -0500)]
Use bfd linker for LTO (#1248)
The gold linker crashes and is no longer supported.
kupsch [Wed, 6 Apr 2022 15:21:30 +0000 (10:21 -0500)]
Cleanup (remove) ancient linux kernel support (#1241)
- Remove check and message for ancient linux kernel
- Remove support for old mechanism to find process's tasks
James A. Kupsch [Thu, 31 Mar 2022 14:03:20 +0000 (09:03 -0500)]
remove unused files containing pragmas (#1240)
James A. Kupsch [Thu, 31 Mar 2022 14:02:15 +0000 (09:02 -0500)]
Remove unneeded #pragma's (#1240)
- Remove once and interface pragmas
- Replace use of "external/stdint-win.h" and "external/inttypes.h" with
<stdint.h> and <inttypes.h>
James A. Kupsch [Mon, 4 Apr 2022 14:43:15 +0000 (09:43 -0500)]
Add compiler warning related cmake options (#1239)
- DYNINST_WARNINGS_AS_ERRORS option: if set, treat warnings as errors
- DYNINST_EXTRA_WARNINGS option: additional warning options to test for
and use if valid with the current compiler
James A. Kupsch [Thu, 31 Mar 2022 18:58:27 +0000 (13:58 -0500)]
Add cmake option to disable diagnostic suppressions (#1239)
- DYNINST_DISABLE_DIAGNOSTIC_SUPPRESSIONS option: if set,
disable all warning suppressions and frame size limit overrides
James A. Kupsch [Wed, 23 Mar 2022 04:20:05 +0000 (23:20 -0500)]
Fix frame-larger-than warning (#1239)
- Increase frame size max when using gcc 6 for non-debug builds and
for all debug builds (needed for rhel's gcc) to compile
instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C
James A. Kupsch [Wed, 30 Mar 2022 03:53:24 +0000 (22:53 -0500)]
Remove MSC compiler warning suppressions (#1239)
Likely no longer needed with current MSC compiler and will hide
problems if MSC is used.
- Removed diagnostic suppressing pragmas
- Removed compiler command line suppression options
James A. Kupsch [Wed, 30 Mar 2022 03:51:18 +0000 (22:51 -0500)]
Improve compiler diagnostic suppression handling (#1239)
- Create compiler specific diagnostic suppression macros to suppress a
type of warning for a region of code that are consistently defined
based on the build environment.
- Replace current multi-line preprocessor #if and #pragma statements
with one macro.
- Add suppression for warnings in instructionAPI/src/Register.C
when using gcc 6-8.
Tim Haines [Mon, 4 Apr 2022 18:05:59 +0000 (13:05 -0500)]
Remove unused git files (#1244)
.gitmodules hasn't been used since the test suite was moved to its own repository.
.github_changelog_generate hasn't been used since v10.0.0
Tim Haines [Mon, 4 Apr 2022 16:15:00 +0000 (11:15 -0500)]
Docker: make compile warnings fatal (#1242)
Tim Haines [Mon, 4 Apr 2022 04:21:21 +0000 (23:21 -0500)]
Docker: use external-tests instead of testsuite in base image (#1209)
This is in preparation for using -Werror when building Dyninst in the Github workflow. The test suite does not currently build cleanly, so we need a different set of tests.
Tim Haines [Sun, 3 Apr 2022 02:00:42 +0000 (21:00 -0500)]
Docker: don't build Dyninst through spack for the environment (#1222)
This results in two installations: one in /opt/dyninst-dev/.spack/include and one in /opt/dyninst-dev/install/dyninst. The former is not updated when testing a PR, so causes public header conflicts.
Tim Haines [Wed, 30 Mar 2022 22:19:21 +0000 (17:19 -0500)]
Docker: use more OS packages for dependencies (#1221)
* Docker: use more OS packages for dependencies
This should have been part of #1211.
Tim Haines [Tue, 29 Mar 2022 20:24:43 +0000 (15:24 -0500)]
Remove void pointer arithmetic when using Valgrind annotations (#1236)
gcc allows this as an extension by considering sizeof(void) to be 1 (http://gcc.gnu.org/onlinedocs/gcc/Pointer-Arith.html).
Tim Haines [Tue, 29 Mar 2022 20:21:52 +0000 (15:21 -0500)]
Add parsing of names for inlined functions in DWARF (#1237)
* Clean up and enhance debug messages
* Add parsing of names for inlined functions
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Tue, 29 Mar 2022 20:19:51 +0000 (15:19 -0500)]
Remove BUILD_RT option (#1238)
When not enabled, the dyninstAPI_RT/cmake_install.cmake isn't present.
This has been broken since it was implemented by
e1afc6918 in 2016.
kupsch [Sun, 27 Mar 2022 18:56:27 +0000 (13:56 -0500)]
Fix warnings with cmake's MINSIZEREL build type (#1235)
- Explicitly define optimization flags for cmake's MINSIZEREL build
type. Cmake by default includes -DNDEBUG. This results in assert
being defined to do nothing. Dyninst use asserts as a fatal error
reporting mechanism and expects assert to not return if the condition
is always false. If assert can return then many warnings are
produced due to this unexpect path.
- Remove defining NDEBUG for REL build types if using the MSC compiler
kupsch [Mon, 21 Mar 2022 11:54:26 +0000 (06:54 -0500)]
Correctly propagate pc ranges for blocks and local variables (#1226)
- fix valid pc address ranges for local variables that are declared in a
sub-block (brace, try and catch blocks) of their function
- fix Context class's constructors so they correctly initialize and copy
all member (use in-class initialize and default constructors)
Vanessasaurus [Mon, 14 Mar 2022 00:52:43 +0000 (18:52 -0600)]
Docker: testing workflow to run libabigail (#1220)
Run libabigail's abidiff to detect ABI breakages between the current PR and the last successful build as well as the current PR and the last release.
* testing workflow to run libabigail!
I am not sure if the artifact is extracted relative or not, so will need to update
the workflow to account for that. This is also a new strategy that will try to
do the new build/retrieval of artifacts from previous containers - have not
tried this yet!
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: Tim Haines <thaines.astro@gmail.com>
Tim Haines [Sun, 13 Mar 2022 03:56:29 +0000 (21:56 -0600)]
Remove usage of DW_AT_MIPS_linkage_name (#1223)
This isn't part of DWARF4 or DWARF5.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Vanessasaurus [Fri, 11 Mar 2022 23:52:45 +0000 (16:52 -0700)]
Docker: adding a workflow for release (#1219)
Currently we do the entire build from scratch for release, and this strategy was chosen
for the cleanest build. However we can use the same strategy as we do for testing
and take advantage of the base container. This PR adds a workflow to do that
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Vanessasaurus [Thu, 10 Mar 2022 18:15:31 +0000 (10:15 -0800)]
Merge pull request #1217 from dyninst/thaines/docker_base_container_defaults
Docker: update dependency versions in base container config
Tim Haines [Thu, 10 Mar 2022 16:58:32 +0000 (10:58 -0600)]
Update dependency versions in base container config
This should have been part of #1211
Tim Haines [Wed, 9 Mar 2022 22:41:45 +0000 (16:41 -0600)]
Documentation update for v12.1.0 (#1216)
kupsch [Wed, 9 Mar 2022 21:38:46 +0000 (15:38 -0600)]
Correctly handle DWARF subroutines during parallel parsing (#1215)
Fix to only process the DWARF for a function (subprogram) once if it is defined
in multiple compilation units within a library or executable. This prevents
duplication of parameters, local variables and use of thread-unsafe data
structures from concurrent threads.
Tim Haines [Mon, 7 Mar 2022 23:37:50 +0000 (17:37 -0600)]
Docker: simplify build script (#1212)
* Use CMake's -S instead of undocumented -H
* Remove log captures
The reports are best used within the context of the PR, so storing them
in the dashboard wouldn't be much use.
* Reduce duplication of directory names
* Use CMake commands to build/install
* Separate build and install trees for Dyninst
* Separate build and install directories for test suite
* Simplify 'git pull' for test suite
* Explicitly override test suite install directory
The test suite reads Dyninst's cache which poisons the CMAKE_INSTALL_PREFIX. This overrides that and then puts the test files in the root install directory.
William Cohen [Mon, 7 Mar 2022 18:54:18 +0000 (13:54 -0500)]
Make a couple constant 64-bit ULL to avoid getting truncated during shifts (#1207)
* Ensure ROR work with data types larger than 32 bits.
* Ensure upper 32-bits of 64-bit aarch64 SIMD operand generated.
Tim Haines [Mon, 7 Mar 2022 17:28:17 +0000 (11:28 -0600)]
Docker: use more OS packages (#1211)
* Use perl from OS package
* Use CMake from OS package
* Use Boost from OS package
* Use TBB from OS package
* Mark all external packages as not buildable
bbiiggppiigg [Thu, 3 Mar 2022 23:14:50 +0000 (23:14 +0000)]
Fix potential buffer overrun in AMDGPU decoders (#1208)
* add assert to check for potential buffer overun
* add assert to check for potential buffer overrun in vega
bbiiggppiigg [Fri, 25 Feb 2022 22:39:49 +0000 (22:39 +0000)]
Code clean up for AMDGPU (#1205)
* Update the code layout for vega headers
* Remove unused cda headers
* remove duplicate cdna2 headers in instructionAPI
Tim Haines [Fri, 25 Feb 2022 19:47:22 +0000 (13:47 -0600)]
Tidy up classes in AMDGPU (#1204)
* Remove dead code in makeAmdgpuRegID
* Fix possible no-return cdna2 functions
* Simplify code in bitfieldInsnAliasMap and condInsnAliasMap
* Correctly initialize all members of InstructionDecoder_amdgpu_cdna2
* Inline InstructionDecoder_amdgpu_cdna2 constructor
* Explicitly default ~InstructionDecoder_amdgpu_cdna2
* Fix possible non-return in decodeSGPRorM0
Tim Haines [Thu, 24 Feb 2022 22:50:38 +0000 (16:50 -0600)]
Fix compiler warnings in amdgpu cdna2 code (#1198)
* Fix 'unused-variable' warnings from gcc
* Fix 'unused-parameter' warnings from gcc
Tim Haines [Thu, 24 Feb 2022 21:53:26 +0000 (15:53 -0600)]
Build fixes for amdgpu/cdna2 (#1203)
* Clean up duplicate cdna2 sys_reg headers (#1200)
* add install rule to install amdgpu headers under common/h (#1201)
Co-authored-by: bbiiggppiigg <bbiiggppiigg@gmail.com>
bbiiggppiigg [Wed, 23 Feb 2022 15:16:55 +0000 (09:16 -0600)]
Add Support for AMDGPU CDNA2 Architectures based on XML ISA spec (#1107)
Add Initial Support for cdna based on the lastest version of XML file (
20210720 )
Added new register names based on the latest xml-isa drop
Decoder implementation updated based on the latest xml-isa drop
renumbered registers to make low registers have the same value as full register (or its super set)
add larger memoery types for representing consecutive registers used as a single operand
Modify the format function to output multiple registers as a single operand correctly, handling for certain registers are still being worked on
split register-vector into multiple registers
kupsch [Wed, 9 Feb 2022 16:41:16 +0000 (10:41 -0600)]
fix building of symlite (#1197)
- add missing pure virtual functions isReadOnly
- fix isCode and isData methods to use program header permissions instead
of just returning true
- fix printf compiler warning
- disable parseThat if using symlite as it is not compatible
- remove #include <linux/elf.h> from proccontrol/src/linux.h on aarch64
if SYMLITE is configured as it is incompatible with <elf.h>
Tim Haines [Sat, 5 Feb 2022 01:08:30 +0000 (19:08 -0600)]
Additional cleanup of memory emulation for hybrid analysis (#1172)
* Remove vestiges of runtime functions
* Remove translation for emulation shadow pages
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Xiaozhu Meng [Wed, 26 Jan 2022 02:30:53 +0000 (20:30 -0600)]
Allow zero-length ELF program headers (#1192)
CUDA-11.6 binaries do not have program headers, which causes ELF parsing to stop early and miss line info
Xiaozhu Meng [Wed, 26 Jan 2022 02:44:17 +0000 (20:44 -0600)]
Remove dead code and variables related to Symtab::data_ptr_ and Symtab::code_ptr_ (#1192)
Xiaozhu Meng [Wed, 26 Jan 2022 02:34:23 +0000 (20:34 -0600)]
Remove dead code Object::elf_vaddr_to_ptr (#1192)
Stan Cox [Fri, 4 Feb 2022 20:35:36 +0000 (15:35 -0500)]
glibc r_debug extensions to support multiple namespaces (#1175)
* Remove interposed definition of _r_debug
Previously there was a dynamic relocation against _r_debug in the loader which picked up the interposed definition, but glibc now uses a direct internal hidden symbol reference and thus no longer updates the interposed object.
* Update the elf _DYNAMIC symbol
When the symbol table is created in emitElf<ElfTypes>::createSymbolTables, also update the elf _DYNAMIC symbol to reflect the new address of the .dynamic section.
Tim Haines [Fri, 4 Feb 2022 20:06:30 +0000 (14:06 -0600)]
Symtab::module documentation cleanup (#1189)
* Remove docs for hasLineInformation
This was removed by 0dee1c8 in 2016
* Remove getAllVariables
This was by b3ad134 in 2021. It was removed there because this function
was never implemented.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Vanessasaurus [Fri, 4 Feb 2022 20:04:29 +0000 (13:04 -0700)]
Dockerfile: use explicit packages for 'spack external find' (#1195)
currently gettext in ubuntu 20.04 is being added as an external dependency (just added about 24
hours ago) and it is breaking the build. This change will test removing from the OS (probably
not recommended but okay in the context of the Dyninst image)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Jonathon Anderson [Fri, 4 Feb 2022 19:57:51 +0000 (13:57 -0600)]
ParseAPI: Speed up the case where a function is called from many locations (#1190)
In some binaries a single function has many callers, so copying out the source edges for
the entry Block takes a while and causes significant contention on the Block's lock.
The case in Parser::finalize where this becomes a hotspot likely does not need to read
every edge, so this commit inlines those cases into methods on Block instead.
Xiaozhu Meng [Thu, 13 Jan 2022 03:28:29 +0000 (21:28 -0600)]
ELF+DWARF: always parse first entry in source file table (#1184)
rocm-4.5 starts to emit AMD GPU binaries with DWARF 5. I noticed missing source line information for these binaries. The root cause is that dyninst assumes that source file table entry 0 represents "unknown file". This no longer seems to be true in DWARF 5, where entry 0 can represents a real application source file.
Stan Cox [Thu, 13 Jan 2022 02:00:50 +0000 (21:00 -0500)]
Remove interposed definition of _r_debug (#1176)
Previously there was a dynamic relocation against _r_debug in the loader which picked up the interposed definition,
but glibc now uses a direct internal hidden symbol reference and thus no longer updates the interposed object.
Vanessasaurus [Wed, 12 Jan 2022 19:50:12 +0000 (12:50 -0700)]
start of work to add automated testing to dyninst! (#1183)
start of work to add automated testing to dyninst!
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Vanessasaurus [Wed, 12 Jan 2022 19:36:55 +0000 (12:36 -0700)]
adding dyninst release trigger (#1181)
to release a tagged (versioned) container on publication of a release we just
need to add the release -> published trigger, derive the tag from the GITHUB_REF environment
variable, and then tag and push the container
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Vanessasaurus [Wed, 12 Jan 2022 05:39:13 +0000 (22:39 -0700)]
fixing workflow trigger (#1182)
we do not need the build on PR, but we do need on merge into MASTER not MAIN
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Vanessasaurus [Wed, 12 Jan 2022 05:29:09 +0000 (22:29 -0700)]
Adding first stage of automated docker build (#1180)
* adding first stage of automated docker build
this first workflow include a base container with ubuntu 20.04 and
a set of dependencies chosen by Tim. The base container will be set (after this PR) as a scheduled, nightly build, and we do this so testing each day can simply pull it, re-add the new source code and testsuite, and quickly compile again (on the order of 3.5 minutes vs. 1 hour+ for the entire container build. This update will happen in two stages - this first to deploy the base container, and a follow up to add automated testing using it. Currently this does not upload test results to Tims server, and this is only because I want to talk to him about it first and then test the workflow before PR here.
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Jonathan R. Madsen [Fri, 7 Jan 2022 18:48:48 +0000 (12:48 -0600)]
Remove erroneous use of realloc in symtabAPI/Type-mem.h (#1170)
Tim Haines [Sun, 28 Nov 2021 23:44:35 +0000 (17:44 -0600)]
Clean up memoryTracker usage in binaryEdit (#877)
* Store memoryTracker_ as a value instead of pointer
This provides cleaner semantics for its usage and ensures that the it's
default-constructed correctly.
* Code cleanup
* Give codeRange a virtual destructor
This will ensure that memoryTracker objects removed from a codeTree will
correctly get destroyed.
* Simplify inferiorFree
* Free any remaining memoryTrackers on destruction
Tim Haines [Tue, 23 Nov 2021 21:46:24 +0000 (15:46 -0600)]
Documentation updates for 12.0.1 release
Tim Haines [Tue, 23 Nov 2021 19:44:39 +0000 (13:44 -0600)]
Remove NVIDIA external line map configure check (#1162)
Now that we require elfutils >= 0.186, this is no longer needed.
Tim Haines [Tue, 23 Nov 2021 19:09:53 +0000 (13:09 -0600)]
Increase minimum elfutils version to 0.186 (#1161)
This is needed to parse NVIDIA's extended line map information.
HPCToolkit makes extensive use of this functionality.
Tim Haines [Mon, 22 Nov 2021 19:29:53 +0000 (13:29 -0600)]
Refactor dwarfWalker::findConst (#1160)
This function always returns 'true' and few callsites checked the bool
out variable. Using an optional here makes everything simpler. Logging
has been substantially improved for better tracing.
Tim Haines [Sat, 20 Nov 2021 17:24:06 +0000 (11:24 -0600)]
Add readable name for Symtab::typeRef (#1157)
Arguably, this is completely arbitrary as it could have been spelled
'ref', 'reference', etc. Using the language symbol also allows users to
reconstruct source-level syntax more directly.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Thu, 18 Nov 2021 00:51:26 +0000 (18:51 -0600)]
DwarfWalker: clean up interfaces for findDieName and findName (#1154)
findDieName always returned 'true', so any checks for its return value
were meaningless. It was also not clear that 'findName' would modify its
argument. The new interface removes that surprise by making the name the
return value.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Sat, 13 Nov 2021 20:59:08 +0000 (14:59 -0600)]
Add conflict with CMake 3.19.0 (#1153)
There is a bug in 3.19.0 that treats .S files like C-language files.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Thu, 11 Nov 2021 20:38:48 +0000 (14:38 -0600)]
Documentation update for 12.0.0 release (#1151)
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Xiaozhu Meng [Wed, 10 Nov 2021 21:55:58 +0000 (15:55 -0600)]
Add CMake test to check if libdw supports NVIDIA extended line map
Xiaozhu Meng [Sat, 6 Nov 2021 20:43:17 +0000 (15:43 -0500)]
Adjust interface changes in elfutils regarding NVIDIA extended line map
Xiaozhu Meng [Thu, 26 Aug 2021 15:51:00 +0000 (10:51 -0500)]
Add compile-time checking to see if elfutils support nvidia extended line map
when the user have specified ENABLE_NVIDIA_EXT_LINE_MAP
Xiaozhu Meng [Tue, 24 Aug 2021 19:06:46 +0000 (14:06 -0500)]
Fix compilation warning and add cmake option ENABLE_NVIDIA_EXT_LINE_MAP
Xiaozhu Meng [Fri, 20 Aug 2021 01:57:13 +0000 (20:57 -0500)]
1. Handle unrelocated line map entries for CUBIN
2. Remove redundant addFunctionRange call to improve performance
3. Add some debug logging
Xiaozhu Meng [Tue, 27 Jul 2021 16:23:42 +0000 (11:23 -0500)]
Inline context from nvidia extended line map identifies an inlined call path
Xiaozhu Meng [Tue, 20 Jul 2021 15:48:18 +0000 (10:48 -0500)]
Start to construct inlining call chains using Nvidia's extended line map
John M Mellor-Crummey [Mon, 12 Jul 2021 15:54:15 +0000 (10:54 -0500)]
cleaning up code for ingesting nvidia extended linemaps
John M Mellor-Crummey [Mon, 12 Jul 2021 03:16:26 +0000 (22:16 -0500)]
first draft of support for nvidia enhanced line maps
Tim Haines [Thu, 11 Nov 2021 03:00:37 +0000 (21:00 -0600)]
Improve docs for lookup functions in CodeObject (#1147)
Add wording to improve clarity about when a CodeRegion is strictly needed when using the lookup functions.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Wed, 10 Nov 2021 19:04:42 +0000 (13:04 -0600)]
Remove AddressSpace::causeTemplateInstantiations (#1149)
This was removed by
47c4dfe96 in 2010.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Wed, 10 Nov 2021 03:51:53 +0000 (21:51 -0600)]
Remove unregisterTrapMapping from PCProcess
This was disabled in 2013 by
fce999f48.
Tim Haines [Wed, 10 Nov 2021 03:50:29 +0000 (21:50 -0600)]
Remove thread registration functions from PCProcess
These were disabled in 2015 by
0e791cce8.
Tim Haines [Wed, 10 Nov 2021 03:48:09 +0000 (21:48 -0600)]
Remove PCProcess::getDeadCode
This was disabled by
ab24c9bf0 in 2012. Because it was replaced with an
'assert(0)', it's safe to say no one has used it since it was disabled.
Tim Haines [Sun, 7 Nov 2021 23:42:16 +0000 (17:42 -0600)]
Remove memory emulation (#1146)
This was disabled by
89919d982 in 2012.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Sun, 7 Nov 2021 19:53:25 +0000 (13:53 -0600)]
Remove ppc32 from builds (#1145)
* Remove ppc32 from build system
* Remove ppc32 source and header files
* Clean up gitignore in parseThat
* Remove use of arch_ppc_little_endian
* Remove explict use of ppc32_linux macro
* Remove implicit use of ppc32 macro
There are likely more instances.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
kupsch [Sun, 7 Nov 2021 19:41:22 +0000 (13:41 -0600)]
fix statement-like macros (#1143)
wrap macro body in 'do {...} while (0)' so they can be used as if they were a
statement with a terminating semicolon.
changed break to return since it then works in a do/while loop and was
semantically the same in all the expansions
parenthesized the use of parameters as needed
Tim Haines [Fri, 5 Nov 2021 04:22:15 +0000 (23:22 -0500)]
Implement ppc64 in MachRegister::getROSERegister (#1139)
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Wed, 3 Nov 2021 15:17:35 +0000 (10:17 -0500)]
Update copyright to 2022 (#1141)
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Tue, 2 Nov 2021 19:03:05 +0000 (14:03 -0500)]
Unify meaning of 'cap_32_64' macro (#1136)
* Unify meaning of 'cap_32_64' macro
Currently, this is used in several different ways due to the historical
original meaning drifting over the years. It's meaning is now "this host
64-bit platform supports modifying 32-bit binaries". Currently, this is
only x86 and PPC32. Although the latter is going away soon due to
obsolescence.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Tue, 2 Nov 2021 18:21:49 +0000 (13:21 -0500)]
Remove support for Cray CNL (#1137)
The Compute Node Linux (CNL) was for the old XT/XE platforms that
are obsolete now. This should have been removed by
e5484368f in
2021. Support for this platform was removed from the test suite by
7e4ab7c12 in 2012.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Stan Cox [Mon, 1 Nov 2021 18:24:07 +0000 (14:24 -0400)]
Don't overflow aarch64 float register vector when setting used regs. (#1127)
Do not include the subtype when setting a float register as a used register if the registerSlot vector would be exceeded, e.g. for a value like 0x400 (Q_REG/register 0).
Tim Haines [Fri, 29 Oct 2021 17:01:07 +0000 (12:01 -0500)]
Remove xlc macros (#1132)
* Remove unused XLC macro in dyntypes.h
* Remove XLC check in BPatch_snippet/BPatch_effectiveAddressExpr
This was added by
c604218d5 in 2004 for compiling dyninst with xlC as a
static library for AIX compatibility with DPCL- neither of which is
supported by Dyninst now.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Thu, 28 Oct 2021 22:11:30 +0000 (17:11 -0500)]
Remove common/src/language.h (#1131)
This is never used anywhere. We also require a compiler that supports 'typename' implicitly.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
Tim Haines [Thu, 28 Oct 2021 21:36:51 +0000 (16:36 -0500)]
Remove usage of arch_ppc and arch_ppc64 (#1129)
These were removed by f33ba7b in 2013 and should have been converted to
arch_power at that time.
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
James A. Kupsch [Thu, 28 Oct 2021 20:06:18 +0000 (15:06 -0500)]
fix unused const variable warnings
James A. Kupsch [Tue, 10 Aug 2021 05:50:23 +0000 (00:50 -0500)]
fix pessimizing std::move warnings
James A. Kupsch [Tue, 10 Aug 2021 05:34:21 +0000 (00:34 -0500)]
fix xor operator used as power operator
2^32 should be 1LL << 32