| """ |
| The evaluating printf(...) after break stop and then up a stack frame. |
| """ |
| |
| from __future__ import print_function |
| |
| |
| import os |
| import time |
| import lldb |
| from lldbsuite.test.decorators import * |
| from lldbsuite.test.lldbtest import * |
| from lldbsuite.test import lldbutil |
| |
| |
| class Radar9531204TestCase(TestBase): |
| |
| mydir = TestBase.compute_mydir(__file__) |
| |
| # rdar://problem/9531204 |
| @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") |
| def test_expr_commands(self): |
| """The evaluating printf(...) after break stop and then up a stack frame.""" |
| self.build() |
| |
| self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) |
| |
| lldbutil.run_break_set_by_symbol( |
| self, 'foo', sym_exact=True, num_expected_locations=1) |
| |
| self.runCmd("run", RUN_SUCCEEDED) |
| |
| self.runCmd("frame variable") |
| |
| # This works fine. |
| self.runCmd('expression (int)printf("value is: %d.\\n", value);') |
| |
| # rdar://problem/9531204 |
| # "Error dematerializing struct" error when evaluating expressions "up" on the stack |
| self.runCmd('up') # frame select -r 1 |
| |
| self.runCmd("frame variable") |
| |
| # This does not currently. |
| self.runCmd('expression (int)printf("argc is: %d.\\n", argc)') |