| """ |
| Tests that frame variable looks into anonymous unions |
| """ |
| import lldb |
| from lldbsuite.test.lldbtest import * |
| import lldbsuite.test.lldbutil as lldbutil |
| |
| |
| class FrameVariableAnonymousUnionsTestCase(TestBase): |
| |
| mydir = TestBase.compute_mydir(__file__) |
| |
| def test_with_run_command(self): |
| """Tests that frame variable looks into anonymous unions""" |
| self.build() |
| self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) |
| |
| line = line_number('main.cpp', '// break here') |
| lldbutil.run_break_set_by_file_and_line( |
| self, "main.cpp", line, num_expected_locations=-1, loc_exact=False) |
| |
| self.runCmd("process launch", RUN_SUCCEEDED) |
| |
| process = self.dbg.GetSelectedTarget().GetProcess() |
| |
| if process.GetByteOrder() == lldb.eByteOrderLittle: |
| self.expect('frame variable -f x i', substrs=['ffffff41']) |
| else: |
| self.expect('frame variable -f x i', substrs=['41ffff00']) |
| |
| self.expect('frame variable c', substrs=["'A"]) |
| |
| self.expect('frame variable x', matching=False, substrs=['3']) |
| self.expect('frame variable y', matching=False, substrs=["'B'"]) |
| self.expect('frame variable z', matching=False, substrs=['14']) |