#
a6b56243 |
| 27-Jan-2022 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
Revert "[lldb/test] Try to fix TestSBModule failure"
This reverts commit 326516448c839d8f9cc515b20a34d0f3a6ee2374.
|
#
32651644 |
| 26-Jan-2022 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/test] Try to fix TestSBModule failure
This should fix https://lab.llvm.org/buildbot/#/builders/68/builds/25571
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
#
c3ca2c6b |
| 24-Jan-2022 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/test] Fix `TestScriptedProcess.test_scripted_process_and_scripted_thread`
This patch updates `dummy_scripted_process.py` to report the dummy thread correctly to reflect the changes introduced
[lldb/test] Fix `TestScriptedProcess.test_scripted_process_and_scripted_thread`
This patch updates `dummy_scripted_process.py` to report the dummy thread correctly to reflect the changes introduced by `d3e0f7e`.
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
#
cfa55bfe |
| 18-Jan-2022 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Enrich ScriptedThreads Stop Reasons with Exceptions
This patch adds Exceptions to the list of supported stop reasons for Scripted Threads.
The main motivation for this is that breakp
[lldb/Plugins] Enrich ScriptedThreads Stop Reasons with Exceptions
This patch adds Exceptions to the list of supported stop reasons for Scripted Threads.
The main motivation for this is that breakpoints are triggered as a special exception class on ARM platforms, so adding it as a stop reason allows the ScriptedProcess to selected the ScriptedThread that stopped at a breakpoint (or crashed :p).
rdar://87430376
Differential Revision: https://reviews.llvm.org/D117074
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
d3e0f7e1 |
| 18-Jan-2022 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Add support of multiple ScriptedThreads in a ScriptedProcess
This patch adds support of multiple Scripted Threads in a ScriptedProcess.
This is done by fetching the Scripted Threads
[lldb/Plugins] Add support of multiple ScriptedThreads in a ScriptedProcess
This patch adds support of multiple Scripted Threads in a ScriptedProcess.
This is done by fetching the Scripted Threads info dictionary at every ScriptedProcess::DoUpdateThreadList and iterate over each element to create a new ScriptedThread using the object instance, if it was not already available.
This patch also adds the ability to pass a pointer of a script interpreter object instance to initialize a ScriptedInterface instead of having to call the script object initializer in the ScriptedInterface constructor.
This is used to instantiate the ScriptedThreadInterface from the ScriptedThread constructor, to be able to perform call on that script interpreter object instance.
Finally, the patch also updates the scripted process test to check for multiple threads.
rdar://84507704
Differential Revision: https://reviews.llvm.org/D117071
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
Revision tags: llvmorg-13.0.1-rc2 |
|
#
ef74c800 |
| 13-Dec-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/plugin] Fix heap-use-after-free in ScriptedProcess::ReadMemory
This commit should fix a heap-use-after-free bug that was caught by the sanitizer bot.
The issue is that we were reading memory
[lldb/plugin] Fix heap-use-after-free in ScriptedProcess::ReadMemory
This commit should fix a heap-use-after-free bug that was caught by the sanitizer bot.
The issue is that we were reading memory from a second target into a `SBData` object in Python, that was passed to lldb's internal `ScriptedProcess::DoReadMemory` C++ method.
The ScriptedPythonInterface then extracts the underlying `DataExtractor` from the `SBData` object, and is used to read the memory with the appropriate address size and byte order.
Unfortunately, it seems that even though the DataExtractor object was still valid, it pointed to invalid, possibly garbage-collected memory from Python.
To mitigate this, the patch uses `SBData::SetDataWithOwnership` to copy the pointed buffer to lldb's heap memory which prevents the use-after-free error.
rdar://84511405
Differential Revision: https://reviews.llvm.org/D115654
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
9c144b3b |
| 07-Dec-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/test] Fix InvalidScriptedThread windows test failure
This patch should fix a Windows test failure for the InvalidScriptedThread test:
https://lab.llvm.org/buildbot/#/builders/83/builds/12571
[lldb/test] Fix InvalidScriptedThread windows test failure
This patch should fix a Windows test failure for the InvalidScriptedThread test:
https://lab.llvm.org/buildbot/#/builders/83/builds/12571
This refactors the test to stop using python `tempfile` since it's not supported on Windows and creates a logfile at runtime in the test folder.
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
caea440a |
| 02-Dec-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/plugins] Add arm64(e) support to ScriptedProcess
This patch adds support for arm64(e) targets to ScriptedProcess, by providing the `DynamicRegisterInfo` to the base `lldb.ScriptedThread` class
[lldb/plugins] Add arm64(e) support to ScriptedProcess
This patch adds support for arm64(e) targets to ScriptedProcess, by providing the `DynamicRegisterInfo` to the base `lldb.ScriptedThread` class. This allows create and debugging ScriptedProcess on Apple Silicon hardware as well as Apple mobile devices.
It also replace the C++ asserts on `ScriptedThread::GetDynamicRegisterInfo` by some error logging, re-enables `TestScriptedProcess` for arm64 Darwin platforms and adds a new invalid Scripted Thread test.
rdar://85892451
Differential Revision: https://reviews.llvm.org/D114923
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
fcd2d85c |
| 02-Dec-2021 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb] Skip test_launch_scripted_process_stack_frames with ASan
This test is failing on the sanitized bot because of a heap-use-after-free. Disabling the test to turn the bot green again.
rdar://85
[lldb] Skip test_launch_scripted_process_stack_frames with ASan
This test is failing on the sanitized bot because of a heap-use-after-free. Disabling the test to turn the bot green again.
rdar://85954489.
show more ...
|
Revision tags: llvmorg-13.0.1-rc1 |
|
#
419b4711 |
| 10-Nov-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/test] Skip TestScriptedProcess when using system's debugserver (NFC)
Because TestScriptedProcess.py creates a skinny corefile to provides data to the ScriptedProcess and ScriptedThread, we nee
[lldb/test] Skip TestScriptedProcess when using system's debugserver (NFC)
Because TestScriptedProcess.py creates a skinny corefile to provides data to the ScriptedProcess and ScriptedThread, we need to make sure that the debugserver used is not out of tree, to ensure feature availability between debugserver and lldb.
This also removes the `SKIP_SCRIPTED_PROCESS_LAUNCH` env variable after each test finish running.
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
976867b5 |
| 10-Nov-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/test] Update TestScriptedProcess to use skinny corefiles
This patch changes the ScriptedProcess test to use a stack-only skinny corefile as a backing store.
The corefile is saved as a tempora
[lldb/test] Update TestScriptedProcess to use skinny corefiles
This patch changes the ScriptedProcess test to use a stack-only skinny corefile as a backing store.
The corefile is saved as a temporary file at the beginning of the test, and a second target is created for the ScriptedProcess. To do so, we use the SBAPI from the ScriptedProcess' python script to interact with the corefile process.
This patch also makes some small adjustments to the other ScriptedProcess scripts to resolve some inconsistencies and removes the raw memory dump that was previously checked in.
Differential Revision: https://reviews.llvm.org/D112047
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
c63cb0c8 |
| 11-Oct-2021 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
[LLDB] Skip TestScriptedProcess on Arm/AArch64 Linux
This is failing on Arm and AArch64 Linux buildbots since the time it was comitted.
https://lab.llvm.org/buildbot/#/builders/96/builds/12628
Dif
[LLDB] Skip TestScriptedProcess on Arm/AArch64 Linux
This is failing on Arm and AArch64 Linux buildbots since the time it was comitted.
https://lab.llvm.org/buildbot/#/builders/96/builds/12628
Differential Revision: https://reviews.llvm.org/D107585
show more ...
|
#
c26e53e1 |
| 10-Oct-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/test] Disable 'TestScriptedProcess.py' on macOS
This is disabling 'TestScriptedProcess.py' on macOS since it fails on Green Dragon: https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/35
[lldb/test] Disable 'TestScriptedProcess.py' on macOS
This is disabling 'TestScriptedProcess.py' on macOS since it fails on Green Dragon: https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/35974
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
815c87fb |
| 08-Oct-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/test] Disable TestScriptedProcess.py unless Darwin
This patch disables TestScriptedProcess.py on Linux and Windows while I investigate the OS specific failure:
http://lab.llvm.org:8011/#/buil
[lldb/test] Disable TestScriptedProcess.py unless Darwin
This patch disables TestScriptedProcess.py on Linux and Windows while I investigate the OS specific failure:
http://lab.llvm.org:8011/#/builders/68/builds/19793
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
a758c9f7 |
| 08-Oct-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Add memory region support in ScriptedProcess
This patch adds support for memory regions in Scripted Processes. This is necessary to read the stack memory region in order to reconstruc
[lldb/Plugins] Add memory region support in ScriptedProcess
This patch adds support for memory regions in Scripted Processes. This is necessary to read the stack memory region in order to reconstruct each stackframe of the program.
In order to do so, this patch makes some changes to the SBAPI, namely: - Add a new constructor for `SBMemoryRegionInfo` that takes arguments such as the memory region name, address range, permissions ... This is used when reading memory at some address to compute the offset in the binary blob provided by the user. - Add a `GetMemoryRegionContainingAddress` method to `SBMemoryRegionInfoList` to simplify the access to a specific memory region.
With these changes, lldb is now able to unwind the stack and reconstruct each frame. On top of that, reloading the target module at offset 0 allows lldb to symbolicate the `ScriptedProcess` using debug info, similarly to an ordinary Process.
To test this, I wrote a simple program with multiple function calls, ran it in lldb, stopped at a leaf function and read the registers values and copied the stack memory into a binary file. These are then used in the python script.
Differential Revision: https://reviews.llvm.org/D108953
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
59d8dd79 |
| 06-Oct-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Add support for ScriptedThread in ScriptedProcess
This patch introduces the `ScriptedThread` class with its python interface.
When used with `ScriptedProcess`, `ScriptedThreaad` can
[lldb/Plugins] Add support for ScriptedThread in ScriptedProcess
This patch introduces the `ScriptedThread` class with its python interface.
When used with `ScriptedProcess`, `ScriptedThreaad` can provide various information such as the thread state, stop reason or even its register context.
This can be used to reconstruct the program stack frames using lldb's unwinder.
rdar://74503836
Differential Revision: https://reviews.llvm.org/D107585
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
Revision tags: 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 |
|
#
312b43da |
| 20-Jul-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by scri
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by script files (in Python, Lua, Swift, etc ...) and inspect them statically.
Scripted Processes can be used in cooperative multithreading environments like the XNU Kernel or other real-time operating systems, but it can also help us improve the debugger testing infrastructure by writting synthetic tests that simulates hard-to-reproduce process/thread states.
Although ScriptedProcess is not feature-complete at the moment, it has basic execution capabilities and will improve in the following patches.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D100384
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4 |
|
#
fad34da7 |
| 24-Mar-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
Revert "[lldb/Plugins] Add ScriptedProcess Process Plugin"
Reverting commit b09d44b6ae0901865a0d4b2a0cf797c3cd34eeeb, since it breaks the windows bots: https://lab.llvm.org/buildbot/#/builders/83/bu
Revert "[lldb/Plugins] Add ScriptedProcess Process Plugin"
Reverting commit b09d44b6ae0901865a0d4b2a0cf797c3cd34eeeb, since it breaks the windows bots: https://lab.llvm.org/buildbot/#/builders/83/builds/4993
It seems to crash the `TestIRMemoryMapWindows.test` test.
show more ...
|
#
b09d44b6 |
| 24-Mar-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by scri
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by script files (in Python, Lua, Swift, etc ...) and inspect them statically.
Scripted Processes can be used in cooperative multithreading environments like the XNU Kernel or other real-time operating systems, but it can also help us improve the debugger testing infrastructure by writting synthetic tests that simulates hard-to-reproduce process/thread states.
Although ScriptedProcess is not feature-complete at the moment, it has basic execution capabilities and will improve in the following patches.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95713
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
952bc6c9 |
| 24-Mar-2021 |
David Zarzycki <dave@znu.io> |
Revert "[lldb/Plugins] Add ScriptedProcess Process Plugin"
This reverts commit dd391e1ef762d79f86112dc2480a89c9be066ce1.
This patch causes 17 LLDB test regressions on Fedora 33 (x86-64).
|
#
dd391e1e |
| 23-Mar-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by scri
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by script files (in Python, Lua, Swift, etc ...) and inspect them statically.
Scripted Processes can be used in cooperative multithreading environments like the XNU Kernel or other real-time operating systems, but it can also help us improve the debugger testing infrastructure by writting synthetic tests that simulates hard-to-reproduce process/thread states.
Although ScriptedProcess is not feature-complete at the moment, it has basic execution capabilities and will improve in the following patches.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95713
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
#
f3176f5f |
| 23-Mar-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/bindings] Add Python ScriptedProcess base class to lldb module
In order to facilitate the writting of Scripted Processes, this patch introduces a `ScriptedProcess` python base class in the lld
[lldb/bindings] Add Python ScriptedProcess base class to lldb module
In order to facilitate the writting of Scripted Processes, this patch introduces a `ScriptedProcess` python base class in the lldb module.
The base class holds the python interface with all the - abstract - methods that need to be implemented by the inherited class but also some methods that can be overwritten.
This patch also provides an example of a Scripted Process with the `MyScriptedProcess` class.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95712
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
Revision tags: llvmorg-12.0.0-rc3 |
|
#
46796762 |
| 01-Mar-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by scri
[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by script files (in Python, Lua, Swift, etc ...) and inspect them statically.
Scripted Processes can be used in cooperative multithreading environments like the XNU Kernel or other real-time operating systems, but it can also help us improve the debugger testing infrastructure by writting synthetic tests that simulates hard-to-reproduce process/thread states.
Although ScriptedProcess is not feature-complete at the moment, it has basic execution capabilities and will improve in the following patches.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95713
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|
Revision tags: llvmorg-12.0.0-rc2 |
|
#
2cff3dec |
| 19-Feb-2021 |
Med Ismail Bennani <medismail.bennani@gmail.com> |
[lldb/bindings] Add Python ScriptedProcess base class to lldb module
In order to facilitate the writting of Scripted Processes, this patch introduces a `ScriptedProcess` python base class in the lld
[lldb/bindings] Add Python ScriptedProcess base class to lldb module
In order to facilitate the writting of Scripted Processes, this patch introduces a `ScriptedProcess` python base class in the lldb module.
The base class holds the python interface with all the - abstract - methods that need to be implemented by the inherited class but also some methods that can be overwritten.
This patch also provides an example of a Scripted Process with the `MyScriptedProcess` class.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95712
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
show more ...
|