|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
1b4b12a3 |
| 23-Jul-2022 |
Nico Weber <[email protected]> |
Revert "[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute." and follow-ups
This reverts commit 9429b67b8e300e638d7828bbcb95585f85c4df4d.
It broke
Revert "[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute." and follow-ups
This reverts commit 9429b67b8e300e638d7828bbcb95585f85c4df4d.
It broke the build on Windows, see comments on https://reviews.llvm.org/D130309
It also reverts these follow-ups:
Revert "Fix buildbot breakage after https://reviews.llvm.org/D130309." This reverts commit f959d815f4637890ebbacca379f1c38ab47e4e14.
Revert "Fix buildbot breakage after https://reviews.llvm.org/D130309." This reverts commit 0bbce7a4c2d2bff622bdadd4323f93f5d90e6d24.
Revert "Cache the value for absolute path in FileSpec." This reverts commit dabe877248b85b34878e75d5510339325ee087d0.
show more ...
|
| #
9429b67b |
| 21-Jul-2022 |
Greg Clayton <[email protected]> |
[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute.
The FileSpect APIs allow users to modify instance variables directly by getting a non const ref
[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute.
The FileSpect APIs allow users to modify instance variables directly by getting a non const reference to the directory and filename instance variables. This makes it impossibly to control all of the times the FileSpec object is modified so we can clear the cache. This patch modifies the APIs of FileSpec so no one can modify the directory or filename directly by adding set accessors and by removing the get accessors that are non const.
Many clients were using FileSpec::GetCString(...) which returned a unique C string from a ConstString'ified version of the result of GetPath() which returned a std::string. This caused many locations to use this convenient function incorrectly and could cause many strings to be added to the constant string pool that didn't need to. Most clients were converted to using FileSpec::GetPath().c_str() when possible. Other clients were modified to use the newly renamed version of this function which returns an actualy ConstString: ConstString FileSpec::GetPathAsConstString(bool denormalize = true) const;
This avoids the issue where people were getting an already uniqued "const char *" that came from a ConstString only to put the "const char *" back into a "ConstString" object. By returning the ConstString instead of a "const char *" clients can be more efficient with the result.
The patch: - Removes the non const GetDirectory() and GetFilename() get accessors - Adds set accessors to replace the above functions: SetDirectory() and SetFilename(). - Adds ClearDirectory() and ClearFilename() to replace usage of the FileSpec::GetDirectory().Clear()/FileSpec::GetFilename().Clear() call sites - Fixed all incorrect usage of FileSpec::GetCString() to use FileSpec::GetPath().c_str() where appropriate, and updated other call sites that wanted a ConstString to use the newly returned ConstString appropriately and efficiently.
Differential Revision: https://reviews.llvm.org/D130309
show more ...
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
8b3b66ea |
| 03-Mar-2022 |
Jonas Devlieghere <[email protected]> |
[lldb] Remove FileSystem::Initialize from FileCollector
This patch removes the ability to instantiate the LLDB FileSystem class with a FileCollector. It keeps the ability to collect files, but uses
[lldb] Remove FileSystem::Initialize from FileCollector
This patch removes the ability to instantiate the LLDB FileSystem class with a FileCollector. It keeps the ability to collect files, but uses the FileCollectorFileSystem to do that transparently.
Because the two are intertwined, this patch also removes the finalization logic which copied the files over out of process.
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
| #
1755f5b1 |
| 19-Jan-2022 |
Jonas Devlieghere <[email protected]> |
[lldb] Decouple instrumentation from the reproducers
Remove the last remaining references to the reproducers from the instrumentation. This patch renames the relevant files and macros.
Differential
[lldb] Decouple instrumentation from the reproducers
Remove the last remaining references to the reproducers from the instrumentation. This patch renames the relevant files and macros.
Differential revision: https://reviews.llvm.org/D117712
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc2 |
|
| #
d51402ac |
| 08-Jan-2022 |
Jonas Devlieghere <[email protected]> |
[lldb] Remove reproducer instrumentation
This patch removes most of the reproducer instrumentation. It keeps around the LLDB_RECORD_* macros for logging. See [1] for more details.
[1] https://lists
[lldb] Remove reproducer instrumentation
This patch removes most of the reproducer instrumentation. It keeps around the LLDB_RECORD_* macros for logging. See [1] for more details.
[1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html
Differential revision: https://reviews.llvm.org/D116847
show more ...
|
| #
fa126069 |
| 17-Dec-2021 |
Jonas Devlieghere <[email protected]> |
[lldb] Remove reproducer replay functionality
This is part of a bigger rework of the reproducer feature. See [1] for more details.
[1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/01704
[lldb] Remove reproducer replay functionality
This is part of a bigger rework of the reproducer feature. See [1] for more details.
[1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html
show more ...
|
| #
ccf1469a |
| 08-Dec-2021 |
Jonas Devlieghere <[email protected]> |
[lldb] Make lldbVersion a full fledged library
Because of its dependency on clang (and potentially other compilers downstream, such as swift) lldb_private::GetVersion already lives in its own librar
[lldb] Make lldbVersion a full fledged library
Because of its dependency on clang (and potentially other compilers downstream, such as swift) lldb_private::GetVersion already lives in its own library called lldbBase. Despite that, its implementation was spread across unrelated files. This patch improves things by introducing a Version library with its own directory, header and implementation file.
The benefits of this patch include:
- We can get rid of the ugly quoting macros. - Other parts of LLDB can read the version number from lldb/Version/Version.inc. - The implementation can be swapped out for tools like lldb-server than don't need to depend on clang at all.
Differential revision: https://reviews.llvm.org/D115211
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
| #
bf9f21a2 |
| 01-Jun-2021 |
Walter Erquinigo <[email protected]> |
[trace][intel-pt] Create basic SB API
This adds a basic SB API for creating and stopping traces. Note: This doesn't add any APIs for inspecting individual instructions. That'd be a more complicated
[trace][intel-pt] Create basic SB API
This adds a basic SB API for creating and stopping traces. Note: This doesn't add any APIs for inspecting individual instructions. That'd be a more complicated change and it might be better to enhande the dump functionality to output the data in binary format. I'll leave that for a later diff.
This also enhances the existing tests so that they test the same flow using both the command interface and the SB API.
I also did some cleanup of legacy code.
Differential Revision: https://reviews.llvm.org/D103500
show more ...
|
|
Revision tags: llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
73811d32 |
| 23-Oct-2020 |
Jonas Devlieghere <[email protected]> |
[lldb] Move copying of files into reproducer out of process
For performance reasons the reproducers don't copy the files captured by the file collector eagerly, but wait until the reproducer needs t
[lldb] Move copying of files into reproducer out of process
For performance reasons the reproducers don't copy the files captured by the file collector eagerly, but wait until the reproducer needs to be generated.
This is a problematic when LLDB crashes and we have to do all this signal-unsafe work in the signal handler. This patch uses a similar trick to clang, which has the driver invoke a new cc1 instance to do all this work out-of-process.
This patch moves the writing of the mapping file as well as copying over the reproducers into a separate process spawned when lldb crashes.
Differential revision: https://reviews.llvm.org/D89600
show more ...
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
| #
13cde673 |
| 03-Sep-2020 |
Martin Storsjö <[email protected]> |
[lldb] Remove a stray semicolon, fixing pedantic GCC warnings. NFC.
|
| #
37469061 |
| 31-Aug-2020 |
Jonas Devlieghere <[email protected]> |
[lldb] Add reproducer verifier
Add a reproducer verifier that catches:
- Missing or invalid home directory - Missing or invalid working directory - Missing or invalid module/symbol paths - Miss
[lldb] Add reproducer verifier
Add a reproducer verifier that catches:
- Missing or invalid home directory - Missing or invalid working directory - Missing or invalid module/symbol paths - Missing files from the VFS
The verifier is enabled by default during replay, but can be skipped by passing --reproducer-no-verify.
Differential revision: https://reviews.llvm.org/D86497
show more ...
|
| #
7c80f2da |
| 01-Sep-2020 |
Raphael Isemann <[email protected]> |
Revert "[lldb] Add reproducer verifier"
This reverts commit 297f69afac58fc9dc13897857a5e70131c5adc85. It broke the Fedora 33 x86-64 bot. See the review for more info.
|
| #
297f69af |
| 31-Aug-2020 |
Jonas Devlieghere <[email protected]> |
[lldb] Add reproducer verifier
Add a reproducer verifier that catches:
- Missing or invalid home directory - Missing or invalid working directory - Missing or invalid module/symbol paths - Miss
[lldb] Add reproducer verifier
Add a reproducer verifier that catches:
- Missing or invalid home directory - Missing or invalid working directory - Missing or invalid module/symbol paths - Missing files from the VFS
The verifier is enabled by default during replay, but can be skipped by passing --reproducer-no-verify.
Differential revision: https://reviews.llvm.org/D86497
show more ...
|
| #
c90ca0c8 |
| 20-Aug-2020 |
Jonas Devlieghere <[email protected]> |
[lldb] Implement WorkingDirectoryProvider in terms of DirectoryProvider (NFC)
Add an abstract base class that can be used to create other directory providers.
|
|
Revision tags: llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1 |
|
| #
f8df2e1a |
| 20-Jul-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Reproducers] Always record the current working directory
Setting the current working directory in the VFS will fail if the given path doesn't exist in the YAML mapping or on disk.
|
|
Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
| #
690993a0 |
| 20-May-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Reproducers] Add instrumentation to SBEnvironment
This class should've been instrumented when it landed. Whether the class is "highly mutable" or not doesn't affect that.
With this patch Test
[lldb/Reproducers] Add instrumentation to SBEnvironment
This class should've been instrumented when it landed. Whether the class is "highly mutable" or not doesn't affect that.
With this patch TestSBEnvironment.py now passes when replayed.
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc1 |
|
| #
6671a81b |
| 13-May-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Reproducers] Add test-specific API to set the test CWD
The reproducers' working directory is set to the current working directory when they are initialized. While this is not optimal, as the c
[lldb/Reproducers] Add test-specific API to set the test CWD
The reproducers' working directory is set to the current working directory when they are initialized. While this is not optimal, as the cwd can change during a debug session, it has been sufficient so far.
The current approach doesn't work for the API test suite however because dotest temporarily changes the directory to where the test's Python file lives.
This patch adds an API to tell the reproducers what to set the CWD to. This is a NO-OP in every mode but capture.
Differential revision: https://reviews.llvm.org/D79825
show more ...
|
| #
4b354039 |
| 30-Apr-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/API] Move SBCommandInterpreterRunOption in its own header. (NFC)
Currently, `SBCommandInterpreterRunOptions` is defined in `SBCommandInterpreter.h`. Given that the options are always passed by
[lldb/API] Move SBCommandInterpreterRunOption in its own header. (NFC)
Currently, `SBCommandInterpreterRunOptions` is defined in `SBCommandInterpreter.h`. Given that the options are always passed by reference, a forward declaration is sufficient.
That's not the case for `SBCommandInterpreterRunResults`, which we need for a new overload for `RunCommandInterpreter` and that returns this new class by value. We can't include `SBCommandInterpreter.h` because `SBCommandInterpreter::GetDebugger()` returns SBDebugger by value and therefore needs a full definition.
This patch moves the definition of `SBCommandInterpreterRunOptions` into a new header. In a later patch, `SBCommandInterpreterRunResults` will be defined in there as well, solving the aforementioned problem.
Differential revision: https://reviews.llvm.org/D79115
show more ...
|
| #
950a8aa1 |
| 20-Apr-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Reproducers] Support new replay mode: passive replay
Support passive replay as proposed in the RFC [1] on lldb-dev and described in more detail on the lldb website [2].
This patch extends the
[lldb/Reproducers] Support new replay mode: passive replay
Support passive replay as proposed in the RFC [1] on lldb-dev and described in more detail on the lldb website [2].
This patch extends the LLDB_RECORD macros to re-invoke the current function with arguments deserialized from the reproducer. This relies on the function being called in the exact same order as during replay. It uses the same mechanism to toggle the API boundary as during recording, which guarantees that only boundary crossing calls are replayed.
Another major change is that before this patch we could ignore the result of an API call, because we only cared about the observable behavior. Now we need to be able to return the replayed result to the SWIG bindings.
We reuse a lot of the recording infrastructure, which can be a little confusing. We kept the existing naming to limit the amount of churn, but might revisit that in a future patch.
[1] http://lists.llvm.org/pipermail/lldb-dev/2020-April/016100.html [2] https://lldb.llvm.org/resources/reproducers.html
Differential revision: https://reviews.llvm.org/D77602
show more ...
|
| #
fc410138 |
| 14-Apr-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Reproducers] Capture reproducers from the API test suite.
Make it possible to capture reproducers from the API test suite. Given the symmetry between capture and replay, this patch also adds t
[lldb/Reproducers] Capture reproducers from the API test suite.
Make it possible to capture reproducers from the API test suite. Given the symmetry between capture and replay, this patch also adds the necessary code for replay. For now this is a NO-OP until the corresponding reproducer instrumentation changes land.
For more info please refer to the RFC on lldb-dev: http://lists.llvm.org/pipermail/lldb-dev/2020-April/016100.html
Differential revision: https://reviews.llvm.org/D77588
show more ...
|
| #
318a0caf |
| 24-Mar-2020 |
Walter Erquinigo <[email protected]> |
Revert "Create basic SBEnvironment class"
This reverts commit fd868f517d2c5ca8c0f160dbec0857b14ecf74c1.
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6 |
|
| #
fd868f51 |
| 21-Mar-2020 |
Walter Erquinigo <[email protected]> |
Create basic SBEnvironment class
|
|
Revision tags: llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1 |
|
| #
80814287 |
| 24-Jan-2020 |
Raphael Isemann <[email protected]> |
[lldb][NFC] Fix all formatting errors in .cpp file headers
Summary: A *.cpp file header in LLDB (and in LLDB) should like this: ``` //===-- TestUtilities.cpp ----------------------------------------
[lldb][NFC] Fix all formatting errors in .cpp file headers
Summary: A *.cpp file header in LLDB (and in LLDB) should like this: ``` //===-- TestUtilities.cpp -------------------------------------------------===// ``` However in LLDB most of our source files have arbitrary changes to this format and these changes are spreading through LLDB as folks usually just use the existing source files as templates for their new files (most notably the unnecessary editor language indicator `-*- C++ -*-` is spreading and in every review someone is pointing out that this is wrong, resulting in people pointing out that this is done in the same way in other files).
This patch removes most of these inconsistencies including the editor language indicators, all the different missing/additional '-' characters, files that center the file name, missing trailing `===//` (mostly caused by clang-format breaking the line).
Reviewers: aprantl, espindola, jfb, shafik, JDevlieghere
Reviewed By: JDevlieghere
Subscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D73258
show more ...
|
| #
066e817b |
| 16-Jan-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Reproducers] Add a flag to always generating a reproducer
Add a flag which always generates a reproducer when normally it would be discarded. This is meant for testing purposes to capture a de
[lldb/Reproducers] Add a flag to always generating a reproducer
Add a flag which always generates a reproducer when normally it would be discarded. This is meant for testing purposes to capture a debugger session without modification the session itself.
show more ...
|
|
Revision tags: llvmorg-11-init |
|
| #
d3ba1e02 |
| 10-Jan-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Reproducer] Add SBReproducer::Replay overload (again)
I modified the SBAPI under the assumption that nobody was using the old API yet. However, that turns out to be false. So instead of adding
[lldb/Reproducer] Add SBReproducer::Replay overload (again)
I modified the SBAPI under the assumption that nobody was using the old API yet. However, that turns out to be false. So instead of adding the deafault argument I've reintroduced the old API and made the new one an overload.
show more ...
|