[Lldb-commits] [lldb] r327501 - Update selected thread after loading mach core

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 14 04:50:10 PDT 2018


Author: jdevlieghere
Date: Wed Mar 14 04:50:10 2018
New Revision: 327501

URL: http://llvm.org/viewvc/llvm-project?rev=327501&view=rev
Log:
Update selected thread after loading mach core

The OS plugins might have updated the thread list after a core file has
been loaded. The physical thread in the core file may no longer be the
one that should be selected. Hence we should run the thread selection
logic after loading the core.

Differential revision: https://reviews.llvm.org/D44139

Added:
    lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/
    lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py
    lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/operating_system.py
    lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/test.core.yaml
Modified:
    lldb/trunk/source/Target/Process.cpp

Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py?rev=327501&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py Wed Mar 14 04:50:10 2018
@@ -0,0 +1,68 @@
+"""
+Test basics of mach core file debugging.
+"""
+
+from __future__ import print_function
+
+import shutil
+import struct
+
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class MachCoreTestCase(TestBase):
+    NO_DEBUG_INFO_TESTCASE = True
+
+    mydir = TestBase.compute_mydir(__file__)
+
+    def setUp(self):
+        super(MachCoreTestCase, self).setUp()
+        self._initial_platform = lldb.DBG.GetSelectedPlatform()
+
+    def tearDown(self):
+        lldb.DBG.SetSelectedPlatform(self._initial_platform)
+        super(MachCoreTestCase, self).tearDown()
+
+    def test_selected_thread(self):
+        """Test that the right thread is selected after a core is loaded."""
+        # Create core form YAML.
+        self.yaml2obj("test.core.yaml", self.getBuildArtifact("test.core"))
+
+        # Set debugger into synchronous mode
+        self.dbg.SetAsync(False)
+
+        # Create a target by the debugger.
+        target = self.dbg.CreateTarget("")
+
+        # Load OS plugin.
+        python_os_plugin_path = os.path.join(self.getSourceDir(),
+                                             'operating_system.py')
+        command = "settings set target.process.python-os-plugin-path '{}'".format(
+            python_os_plugin_path)
+        self.dbg.HandleCommand(command)
+
+        # Load core.
+        process = target.LoadCore(self.getBuildArtifact("test.core"))
+        self.assertTrue(process, PROCESS_IS_VALID)
+        self.assertEqual(process.GetNumThreads(), 3)
+
+        # Verify our OS plug-in threads showed up
+        thread = process.GetThreadByID(0x111111111)
+        self.assertTrue(thread.IsValid(
+        ), "Make sure there is a thread 0x111111111 after we load the python OS plug-in"
+                        )
+        thread = process.GetThreadByID(0x222222222)
+        self.assertTrue(thread.IsValid(
+        ), "Make sure there is a thread 0x222222222 after we load the python OS plug-in"
+                        )
+        thread = process.GetThreadByID(0x333333333)
+        self.assertTrue(thread.IsValid(
+        ), "Make sure there is a thread 0x333333333 after we load the python OS plug-in"
+                        )
+
+        # Verify that the correct thread is selected
+        thread = process.GetSelectedThread()
+        self.assertEqual(thread.GetThreadID(), 0x333333333)

Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/operating_system.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/operating_system.py?rev=327501&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/operating_system.py (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/operating_system.py Wed Mar 14 04:50:10 2018
@@ -0,0 +1,45 @@
+import lldb
+import struct
+
+
+class OperatingSystemPlugIn(object):
+    """Class that provides data for an instance of a LLDB 'OperatingSystemPython' plug-in class"""
+
+    def __init__(self, process):
+        '''Initialization needs a valid.SBProcess object.
+
+        This plug-in will get created after a live process is valid and has stopped for the first time.
+        '''
+        self.process = None
+        self.registers = None
+        self.threads = None
+        if isinstance(process, lldb.SBProcess) and process.IsValid():
+            self.process = process
+            self.threads = None  # Will be an dictionary containing info for each thread
+
+    def get_target(self):
+        return self.process.target
+
+    def get_thread_info(self):
+        if not self.threads:
+            self.threads = [{
+                'tid': 0x111111111,
+                'name': 'one',
+                'queue': 'queue1',
+                'state': 'stopped',
+                'stop_reason': 'none'
+            }, {
+                'tid': 0x222222222,
+                'name': 'two',
+                'queue': 'queue2',
+                'state': 'stopped',
+                'stop_reason': 'none'
+            }, {
+                'tid': 0x333333333,
+                'name': 'three',
+                'queue': 'queue3',
+                'state': 'stopped',
+                'stop_reason': 'sigstop',
+                'core': 0
+            }]
+        return self.threads

Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/test.core.yaml
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/test.core.yaml?rev=327501&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/test.core.yaml (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/test.core.yaml Wed Mar 14 04:50:10 2018
@@ -0,0 +1,853 @@
+--- !mach-o
+FileHeader:      
+  magic:           0xFEEDFACF
+  cputype:         0x01000007
+  cpusubtype:      0x00000003
+  filetype:        0x00000004
+  ncmds:           59
+  sizeofcmds:      4384
+  flags:           0x00000000
+  reserved:        0x00000000
+LoadCommands:    
+  - cmd:             LC_THREAD
+    cmdsize:         208
+    PayloadBytes:    
+      - 0x04
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x2A
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x01
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x80
+      - 0xF7
+      - 0xBF
+      - 0xEF
+      - 0xFE
+      - 0x7F
+      - 0x00
+      - 0x00
+      - 0x20
+      - 0xF6
+      - 0xBF
+      - 0xEF
+      - 0xFE
+      - 0x7F
+      - 0x00
+      - 0x00
+      - 0x01
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x10
+      - 0xF6
+      - 0xBF
+      - 0xEF
+      - 0xFE
+      - 0x7F
+      - 0x00
+      - 0x00
+      - 0xF0
+      - 0xF5
+      - 0xBF
+      - 0xEF
+      - 0xFE
+      - 0x7F
+      - 0x00
+      - 0x00
+      - 0xF0
+      - 0xF5
+      - 0xBF
+      - 0xEF
+      - 0xFE
+      - 0x7F
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0xFF
+      - 0xFF
+      - 0xFF
+      - 0xFF
+      - 0xC8
+      - 0xB0
+      - 0x70
+      - 0xA7
+      - 0xFF
+      - 0x7F
+      - 0x00
+      - 0x00
+      - 0xD0
+      - 0xB0
+      - 0x70
+      - 0xA7
+      - 0xFF
+      - 0x7F
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0xA0
+      - 0x0F
+      - 0x00
+      - 0x00
+      - 0x01
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x46
+      - 0x02
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x2B
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x06
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x04
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x03
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x00
+      - 0x10
+      - 0x00
+      - 0x02
+      - 0xA7
+      - 0xFF
+      - 0x7F
+      - 0x00
+      - 0x00
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4294967296
+    vmsize:          4096
+    fileoff:         8192
+    filesize:        4096
+    maxprot:         5
+    initprot:        5
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4294971392
+    vmsize:          4096
+    fileoff:         12288
+    filesize:        4096
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4294975488
+    vmsize:          307200
+    fileoff:         16384
+    filesize:        307200
+    maxprot:         5
+    initprot:        5
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295282688
+    vmsize:          12288
+    fileoff:         323584
+    filesize:        12288
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295294976
+    vmsize:          217088
+    fileoff:         335872
+    filesize:        217088
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295512064
+    vmsize:          110592
+    fileoff:         552960
+    filesize:        110592
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295622656
+    vmsize:          8192
+    fileoff:         663552
+    filesize:        8192
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295630848
+    vmsize:          8192
+    fileoff:         671744
+    filesize:        8192
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295639040
+    vmsize:          4096
+    fileoff:         679936
+    filesize:        4096
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295643136
+    vmsize:          4096
+    fileoff:         684032
+    filesize:        4096
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295651328
+    vmsize:          24576
+    fileoff:         688128
+    filesize:        24576
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295684096
+    vmsize:          24576
+    fileoff:         712704
+    filesize:        24576
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295712768
+    vmsize:          4096
+    fileoff:         737280
+    filesize:        4096
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4295716864
+    vmsize:          8192
+    fileoff:         741376
+    filesize:        8192
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4296015872
+    vmsize:          1048576
+    fileoff:         749568
+    filesize:        1048576
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4297064448
+    vmsize:          1048576
+    fileoff:         1798144
+    filesize:        1048576
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4298113024
+    vmsize:          1048576
+    fileoff:         2846720
+    filesize:        1048576
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          4303355904
+    vmsize:          8388608
+    fileoff:         3895296
+    filesize:        8388608
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140732912369664
+    vmsize:          8388608
+    fileoff:         12283904
+    filesize:        8388608
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140734252867584
+    vmsize:          811999232
+    fileoff:         20672512
+    filesize:        811999232
+    maxprot:         5
+    initprot:        5
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735863480320
+    vmsize:          20553728
+    fileoff:         832671744
+    filesize:        20553728
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735884034048
+    vmsize:          2097152
+    fileoff:         853225472
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735886131200
+    vmsize:          2097152
+    fileoff:         855322624
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735888228352
+    vmsize:          2097152
+    fileoff:         857419776
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735890325504
+    vmsize:          2097152
+    fileoff:         859516928
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735892422656
+    vmsize:          2097152
+    fileoff:         861614080
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735894519808
+    vmsize:          2097152
+    fileoff:         863711232
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735896616960
+    vmsize:          2097152
+    fileoff:         865808384
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735898714112
+    vmsize:          2097152
+    fileoff:         867905536
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735900811264
+    vmsize:          2097152
+    fileoff:         870002688
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735902908416
+    vmsize:          10485760
+    fileoff:         872099840
+    filesize:        10485760
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735913394176
+    vmsize:          4194304
+    fileoff:         882585600
+    filesize:        4194304
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735917588480
+    vmsize:          2097152
+    fileoff:         886779904
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735919685632
+    vmsize:          2097152
+    fileoff:         888877056
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735921782784
+    vmsize:          4194304
+    fileoff:         890974208
+    filesize:        4194304
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735925977088
+    vmsize:          4194304
+    fileoff:         895168512
+    filesize:        4194304
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735930171392
+    vmsize:          6291456
+    fileoff:         899362816
+    filesize:        6291456
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735936462848
+    vmsize:          2097152
+    fileoff:         905654272
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735938560000
+    vmsize:          2097152
+    fileoff:         907751424
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735940657152
+    vmsize:          2097152
+    fileoff:         909848576
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735942754304
+    vmsize:          2097152
+    fileoff:         911945728
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735944851456
+    vmsize:          6291456
+    fileoff:         914042880
+    filesize:        6291456
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735951142912
+    vmsize:          2097152
+    fileoff:         920334336
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735953240064
+    vmsize:          4194304
+    fileoff:         922431488
+    filesize:        4194304
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735957434368
+    vmsize:          2097152
+    fileoff:         926625792
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735959531520
+    vmsize:          2097152
+    fileoff:         928722944
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735961628672
+    vmsize:          20971520
+    fileoff:         930820096
+    filesize:        20971520
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735982600192
+    vmsize:          6291456
+    fileoff:         951791616
+    filesize:        6291456
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735988891648
+    vmsize:          2097152
+    fileoff:         958083072
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735990988800
+    vmsize:          2097152
+    fileoff:         960180224
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735993085952
+    vmsize:          2097152
+    fileoff:         962277376
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735995183104
+    vmsize:          2097152
+    fileoff:         964374528
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735997280256
+    vmsize:          2097152
+    fileoff:         966471680
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140735999377408
+    vmsize:          2097152
+    fileoff:         968568832
+    filesize:        2097152
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140736001474560
+    vmsize:          1302528
+    fileoff:         970665984
+    filesize:        1302528
+    maxprot:         3
+    initprot:        3
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140736937222144
+    vmsize:          219267072
+    fileoff:         971968512
+    filesize:        219267072
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140737486258176
+    vmsize:          4096
+    fileoff:         1191235584
+    filesize:        4096
+    maxprot:         1
+    initprot:        1
+    nsects:          0
+    flags:           0
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         72
+    segname:         ''
+    vmaddr:          140737487028224
+    vmsize:          4096
+    fileoff:         1191239680
+    filesize:        4096
+    maxprot:         5
+    initprot:        5
+    nsects:          0
+    flags:           0
+...

Modified: lldb/trunk/source/Target/Process.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=327501&r1=327500&r2=327501&view=diff
==============================================================================
--- lldb/trunk/source/Target/Process.cpp (original)
+++ lldb/trunk/source/Target/Process.cpp Wed Mar 14 04:50:10 2018
@@ -2857,10 +2857,10 @@ Status Process::LoadCore() {
     // state.
     SetPrivateState(eStateStopped);
 
-    // Wait indefinitely for a stopped event since we just posted one above...
+    // Wait for a stopped event since we just posted one above...
     lldb::EventSP event_sp;
-    listener_sp->GetEvent(event_sp, llvm::None);
-    StateType state = ProcessEventData::GetStateFromEvent(event_sp.get());
+    StateType state =
+        WaitForProcessToStop(seconds(10), &event_sp, true, listener_sp);
 
     if (!StateIsStoppedState(state, false)) {
       Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));




More information about the lldb-commits mailing list