[Lldb-commits] [lldb] [LLDB/Coredump] Only take the Pthread from stack start to the stackpointer + red_zone (PR #92002)
via lldb-commits
lldb-commits at lists.llvm.org
Wed May 15 15:11:01 PDT 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {darker}-->
:warning: Python code formatter, darker found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
darker --check --diff -r e3ca558ffb1441cb16da7aba021e12c6f110000f...25ff389fd2b1ca5caccfe239d8ab1bd166ee75cb lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
``````````
</details>
<details>
<summary>
View the diff from darker here.
</summary>
``````````diff
--- TestProcessSaveCoreMinidump.py 2024-05-15 21:57:00.000000 +0000
+++ TestProcessSaveCoreMinidump.py 2024-05-15 22:10:33.216415 +0000
@@ -9,11 +9,16 @@
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class ProcessSaveCoreMinidumpTestCase(TestBase):
def verify_core_file(
- self, core_path, expected_pid, expected_modules, expected_threads, stacks_to_sps_map
+ self,
+ core_path,
+ expected_pid,
+ expected_modules,
+ expected_threads,
+ stacks_to_sps_map,
):
# To verify, we'll launch with the mini dump
target = self.dbg.CreateTarget(None)
process = target.LoadCore(core_path)
@@ -56,12 +61,10 @@
self.assertTrue(error.Success(), error.GetCString())
# Try to read just past the red zone and fail
process.ReadMemory(sp - red_zone - 1, 1, error)
self.assertTrue(error.Fail(), "No failure when reading past the red zone")
-
-
self.dbg.DeleteTarget(target)
@skipUnlessArch("x86_64")
@skipUnlessPlatform(["linux"])
def test_save_linux_mini_dump(self):
@@ -100,47 +103,71 @@
# save core and, kill process and verify corefile existence
base_command = "process save-core --plugin-name=minidump "
self.runCmd(base_command + " --style=stack '%s'" % (core_stack))
self.assertTrue(os.path.isfile(core_stack))
self.verify_core_file(
- core_stack, expected_pid, expected_modules, expected_threads, stacks_to_sp_map
+ core_stack,
+ expected_pid,
+ expected_modules,
+ expected_threads,
+ stacks_to_sp_map,
)
self.runCmd(base_command + " --style=modified-memory '%s'" % (core_dirty))
self.assertTrue(os.path.isfile(core_dirty))
self.verify_core_file(
- core_dirty, expected_pid, expected_modules, expected_threads, stacks_to_sp_map
+ core_dirty,
+ expected_pid,
+ expected_modules,
+ expected_threads,
+ stacks_to_sp_map,
)
self.runCmd(base_command + " --style=full '%s'" % (core_full))
self.assertTrue(os.path.isfile(core_full))
self.verify_core_file(
- core_full, expected_pid, expected_modules, expected_threads, stacks_to_sp_map
+ core_full,
+ expected_pid,
+ expected_modules,
+ expected_threads,
+ stacks_to_sp_map,
)
# validate saving via SBProcess
error = process.SaveCore(core_sb_stack, "minidump", lldb.eSaveCoreStackOnly)
self.assertTrue(error.Success())
self.assertTrue(os.path.isfile(core_sb_stack))
self.verify_core_file(
- core_sb_stack, expected_pid, expected_modules, expected_threads, stacks_to_sp_map
+ core_sb_stack,
+ expected_pid,
+ expected_modules,
+ expected_threads,
+ stacks_to_sp_map,
)
error = process.SaveCore(core_sb_dirty, "minidump", lldb.eSaveCoreDirtyOnly)
self.assertTrue(error.Success())
self.assertTrue(os.path.isfile(core_sb_dirty))
self.verify_core_file(
- core_sb_dirty, expected_pid, expected_modules, expected_threads, stacks_to_sp_map
+ core_sb_dirty,
+ expected_pid,
+ expected_modules,
+ expected_threads,
+ stacks_to_sp_map,
)
# Minidump can now save full core files, but they will be huge and
# they might cause this test to timeout.
error = process.SaveCore(core_sb_full, "minidump", lldb.eSaveCoreFull)
self.assertTrue(error.Success())
self.assertTrue(os.path.isfile(core_sb_full))
self.verify_core_file(
- core_sb_full, expected_pid, expected_modules, expected_threads, stacks_to_sp_map
+ core_sb_full,
+ expected_pid,
+ expected_modules,
+ expected_threads,
+ stacks_to_sp_map,
)
self.assertSuccess(process.Kill())
finally:
# Clean up the mini dump file.
``````````
</details>
https://github.com/llvm/llvm-project/pull/92002
More information about the lldb-commits
mailing list