[lldb-dev] Running LLDB tests

Warren.Paul at nokia.com Warren.Paul at nokia.com
Wed Feb 9 14:32:40 PST 2011


I forgot to respond to this earlier, but doing the rest of the steps in
the signing doc and rebooting fixed the problem.

Thanks,
Warren

On 1/28/11 5:00 PM, "ext Greg Clayton" <gclayton at apple.com> wrote:

>You should need the code signing for any SnowLeopard system as far as I
>know. You need to reboot sometimes after doing the code signing to make
>things work in all cases. It sounds like you have debugging from lldb
>working, but not when it is running from Python.
>
>I am guessing task_for_pid() is failing when being run under python.
>
>The easiest thing to try is reboot and see if it works after a reboot. If
>not, then run python test with some environment variables set (the
>following is for bash):
>
>LLDB_DEBUGSERVER_LOG_FILE=/tmp/debugserver.txt
>LLDB_DEBUGSERVER_LOG_FLAGS=0x800e0e ./dotest.py -v enum_types
>
>This causes the tester to run just the tests in the "enum_types"
>directory which will run two tests. When you are done you should have a
>file in /tmp that you can send to me directly and I can take a look.
>
>If you have a laptop, please do try and reboot first. I won't go into
>details, but there are some unexptected things that can make
>task_for_pid() fail which means we can't debug processes.
>
>Greg Clayton
>
>
>On Jan 28, 2011, at 2:30 PM, Warren.Paul at nokia.com wrote:
>
>> I had done the first part of code-signing.txt, up to "The next steps are
>> necessary on SnowLeopard".  The rest sounded like a workaround for an OS
>> bug, and I have 10.6.5, so I figured I see if I could build LLDB without
>> it.  I can, and I can debug it as well, so I assume that means I don't
>> need the steps from "The next steps are necessary on SnowLeopard"?
>>
>> I looked through a few of the failure logs and it looks like lldb is
>> failing to launch the process.  I can have it launch a process when I
>>run
>> lldb from the command line, so perhaps the test script is finding a
>> different lldb?  I've only build the debug version, so I'm hoping
>> dotest.py is finding it at ./../build/Debug/?
>>
>> My Python version is Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49).
>>
>> Any ideas?
>>
>> Thanks,
>> Warren
>>
>> -------------
>>
>> runCmd: pro la
>> output:
>>
>> Expecting pattern: Process .* launched:
>> Not matched
>>
>> FAIL
>>
>> Traceback (most recent call last):
>>  File
>>
>>"/Users/warrenpaul/Dev/lldb/lldb/test/abbreviation_tests/TestAbbreviation
>>s.
>> py", line 66, in test_with_dsym
>>    self.running_abbreviations ()
>>  File
>>
>>"/Users/warrenpaul/Dev/lldb/lldb/test/abbreviation_tests/TestAbbreviation
>>s.
>> py", line 112, in running_abbreviations
>>    patterns = [ "Process .* launched: "])
>>  File "/Users/warrenpaul/Dev/lldb/lldb/test/lldbtest.py", line 804, in
>> expect
>>    msg if msg else EXP_MSG(str, exe))
>> AssertionError: False is not True : 'pro la' returns expected result
>>
>>
>>
>>
>>
>> On 1/28/11 1:18 PM, "ext Greg Clayton" <gclayton at apple.com> wrote:
>>
>>> Are you running these on MacOSX?
>>> If so, did you follow the instructions in "lldb/docs/code-signing.txt"?
>>>
>>> You will need to generate your own code signing certificate and then
>>> debug a program at least once since the first time you used this code
>>> signing certificate a dialog will pop up asking for permission where
>>>you
>>> will have to enter your username/password. After this you should be
>>>able
>>> to debug.
>>>
>>> So to fix this, make sure you can debug something:
>>> ./lldb /bin/ls
>>> (lldb) run
>>>
>>> ...
>>>
>>> If this works, then the test suite should run for you.
>>>
>>> Greg Clayton
>>>
>>> On Jan 28, 2011, at 10:37 AM, Warren.Paul at nokia.com wrote:
>>>
>>>> I've been playing around with LLDB and trying to get it to load some
>>>> symbol files generated by the toolchains we support.  So far so good,
>>>> but I need to start doing more lookups, etc. and would like to script
>>>> these tests.  I thought I'd start with the LLDB tests and build up
>>>>from
>>>> there.  But when I run the tests I get mostly failures followed by a
>>>> crash.  :(  Am I running them incorrectly, or missing some steps, Š ??
>>>> Any help would be greatly appreciated.  Also, I haven't seen any
>>>>logging
>>>> in the Dwarf reader yet but have hit a few asserts.  Any tips for
>>>>having
>>>> my test scripts report anything the debugger doesn't like or expect in
>>>> the Dwarf?
>>>>
>>>> Thanks,
>>>> Warren
>>>>
>>>> Here's the output of the tests:
>>>>
>>>> ./dotest.py -v
>>>>
>>>> Session logs for test failures/errors will go into directory
>>>> '2011-01-28-12_17_51'
>>>> ----------------------------------------------------------------------
>>>> Collected 178 tests
>>>>
>>>>  1: test_nonrunning_command_abbreviations
>>>> (TestAbbreviations.AbbreviationsTestCase) ...
>>>>
>>>>    Hello!
>>>>
>>>> ok
>>>>  2: test_with_dsym (TestAbbreviations.AbbreviationsTestCase) ... FAIL
>>>>  3: test_with_dwarf (TestAbbreviations.AbbreviationsTestCase) ... FAIL
>>>>  4: test_with_dsym (TestAliases.AliasTestCase) ...
>>>>
>>>>
>>>> Whoopee!
>>>>
>>>>
>>>>
>>>>
>>>>    hello
>>>>
>>>>
>>>>    hello
>>>>
>>>> FAIL
>>>>  5: test_with_dwarf (TestAliases.AliasTestCase) ...
>>>>
>>>>
>>>> Whoopee!
>>>>
>>>>
>>>>
>>>>
>>>>    hello
>>>>
>>>>
>>>>    hello
>>>>
>>>> FAIL
>>>>  6: test_with_dsym_and_python_api (TestArrayTypes.ArrayTypesTestCase)
>>>>     Use Python APIs to inspect variables with array types. ... FAIL
>>>>  7: test_with_dsym_and_run_command (TestArrayTypes.ArrayTypesTestCase)
>>>>     Test 'frame variable var_name' on some variables with array types.
>>>> ... FAIL
>>>>  8: test_with_dwarf_and_python_api (TestArrayTypes.ArrayTypesTestCase)
>>>>     Use Python APIs to inspect variables with array types. ... FAIL
>>>>  9: test_with_dwarf_and_run_command
>>>>(TestArrayTypes.ArrayTypesTestCase)
>>>>     Test 'frame variable var_name' on some variables with array types.
>>>> ... FAIL
>>>> 10: test_with_dsym_and_python_api (TestBitfields.BitfieldsTestCase)
>>>>     Use Python APIs to inspect a bitfields variable. ... FAIL
>>>> 11: test_with_dsym_and_run_command (TestBitfields.BitfieldsTestCase)
>>>>     Test 'frame variable ...' on a variable with bitfields. ... FAIL
>>>> 12: test_with_dwarf_and_python_api (TestBitfields.BitfieldsTestCase)
>>>>     Use Python APIs to inspect a bitfields variable. ... FAIL
>>>> 13: test_with_dwarf_and_run_command (TestBitfields.BitfieldsTestCase)
>>>>     Test 'frame variable ...' on a variable with bitfields. ... FAIL
>>>> 14: test_with_dsym (TestBreakpointCommand.BreakpointCommandTestCase)
>>>>     Test a sequence of breakpoint command add, list, and remove. ...
>>>> FAIL
>>>> 15: test_with_dwarf (TestBreakpointCommand.BreakpointCommandTestCase)
>>>>     Test a sequence of breakpoint command add, list, and remove. ...
>>>> FAIL
>>>> 16: test_with_dsym_and_python_api
>>>> (TestBreakpointConditions.BreakpointConditionsTestCase)
>>>>     Use Python APIs to set breakpoint conditions. ... FAIL
>>>> 17: test_with_dsym_and_run_command
>>>> (TestBreakpointConditions.BreakpointConditionsTestCase)
>>>>     Exercise breakpoint condition with 'breakpoint modify -c <expr>
>>>> id'. ... FAIL
>>>> 18: test_with_dwarf_and_python_api
>>>> (TestBreakpointConditions.BreakpointConditionsTestCase)
>>>>     Use Python APIs to set breakpoint conditions. ... FAIL
>>>> 19: test_with_dwarf_and_run_command
>>>> (TestBreakpointConditions.BreakpointConditionsTestCase)
>>>>     Exercise breakpoint condition with 'breakpoint modify -c <expr>
>>>> id'. ... FAIL
>>>> 20: test_with_dsym_and_python_api
>>>> (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)
>>>>     Use Python APIs to set breakpoint ignore count. ... FAIL
>>>> 21: test_with_dsym_and_run_command
>>>> (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)
>>>>     Exercise breakpoint ignore count with 'breakpoint set -i <count>'.
>>>> ... FAIL
>>>> 22: test_with_dwarf_and_python_api
>>>> (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)
>>>>     Use Python APIs to set breakpoint ignore count. ... FAIL
>>>> 23: test_with_dwarf_and_run_command
>>>> (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)
>>>>     Exercise breakpoint ignore count with 'breakpoint set -i <count>'.
>>>> ... FAIL
>>>> 24: test_with_dsym
>>>> (TestBreakpointLocations.BreakpointLocationsTestCase)
>>>>     Test breakpoint enable/disable for a breakpoint ID with multiple
>>>> locations. ... FAIL
>>>> 25: test_with_dwarf
>>>> (TestBreakpointLocations.BreakpointLocationsTestCase)
>>>>     Test breakpoint enable/disable for a breakpoint ID with multiple
>>>> locations. ... FAIL
>>>> 26: test_with_dsym_and_python_api
>>>> (TestStaticVariables.StaticVariableTestCase)
>>>>     Test Python APIs on file and class static variables. ... FAIL
>>>> 27: test_with_dsym_and_run_command
>>>> (TestStaticVariables.StaticVariableTestCase)
>>>>     Test that file and class static variables display correctly. ...
>>>> FAIL
>>>> 28: test_with_dwarf_and_python_api
>>>> (TestStaticVariables.StaticVariableTestCase)
>>>>     Test Python APIs on file and class static variables. ... FAIL
>>>> 29: test_with_dwarf_and_run_command
>>>> (TestStaticVariables.StaticVariableTestCase)
>>>>     Test that file and class static variables display correctly. ...
>>>> FAIL
>>>> 30: test_with_dsym_and_expr_parser (TestClassTypes.ClassTypesTestCase)
>>>>     Test 'frame variable this' and 'expr this' when stopped inside a
>>>> constructor. ... FAIL
>>>> 31: test_with_dsym_and_python_api (TestClassTypes.ClassTypesTestCase)
>>>>     Use Python APIs to create a breakpoint by (filespec, line). ...
>>>> FAIL
>>>> 32: test_with_dsym_and_run_command (TestClassTypes.ClassTypesTestCase)
>>>>     Test 'frame variable this' when stopped on a class constructor.
>>>> ... FAIL
>>>> 33: test_with_dwarf_and_expr_parser
>>>>(TestClassTypes.ClassTypesTestCase)
>>>>     Test 'frame variable this' and 'expr this' when stopped inside a
>>>> constructor. ... FAIL
>>>> 34: test_with_dwarf_and_python_api (TestClassTypes.ClassTypesTestCase)
>>>>     Use Python APIs to create a breakpoint by (filespec, line). ...
>>>> FAIL
>>>> 35: test_with_dwarf_and_run_command
>>>>(TestClassTypes.ClassTypesTestCase)
>>>>     Test 'frame variable this' when stopped on a class constructor.
>>>> ... FAIL
>>>> 36: test_with_dsym_and_python_api
>>>> (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)
>>>>     Disassemble each call frame when stopped on C's constructor. ...
>>>> FAIL
>>>> 37: test_with_dsym_and_run_command
>>>> (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)
>>>>     Disassemble each call frame when stopped on C's constructor. ...
>>>> FAIL
>>>> 38: test_with_dwarf_and_python_api
>>>> (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)
>>>>     Disassemble each call frame when stopped on C's constructor. ...
>>>> FAIL
>>>> 39: test_with_dwarf_and_run_command
>>>> (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)
>>>>     Disassemble each call frame when stopped on C's constructor. ...
>>>> FAIL
>>>> 40: test_command_source (TestCommandSource.CommandSourceTestCase)
>>>>     Test that lldb command "command source" works correctly. ...
>>>> 2011-01-28
>>>> ok
>>>> 41: test_with_dsym_command
>>>> (TestConditionalBreak.ConditionalBreakTestCase)
>>>>     Simulate a user using lldb commands to break on c() if called from
>>>> a(). ... FAIL
>>>> 42: test_with_dsym_python
>>>> (TestConditionalBreak.ConditionalBreakTestCase)
>>>>     Exercise some thread and frame APIs to break if c() is called by
>>>> a(). ... FAIL
>>>> 43: test_with_dwarf_command
>>>> (TestConditionalBreak.ConditionalBreakTestCase)
>>>>     Simulate a user using lldb commands to break on c() if called from
>>>> a(). ... FAIL
>>>> 44: test_with_dwarf_python
>>>> (TestConditionalBreak.ConditionalBreakTestCase)
>>>>     Exercise some thread and frame APIs to break if c() is called by
>>>> a(). ... FAIL
>>>> 45: test_with_dsym (TestDeadStrip.DeadStripTestCase)
>>>>     Test breakpoint works correctly with dead-code stripping. ... FAIL
>>>> 46: test_with_dwarf (TestDeadStrip.DeadStripTestCase)
>>>>     Test breakpoint works correctly with dead-code stripping. ... FAIL
>>>> 47: test_with_dsym (TestEnumTypes.EnumTypesTestCase)
>>>>     Test 'image lookup -t days' and check for correct display. ...
>>>>FAIL
>>>> 48: test_with_dwarf (TestEnumTypes.EnumTypesTestCase)
>>>>     Test 'image lookup -t days' and check for correct display. ...
>>>>FAIL
>>>> 49: test_choice (TestSequenceFunctions.SequenceFunctionsTestCase) ...
>>>> ok
>>>> 50: test_sample (TestSequenceFunctions.SequenceFunctionsTestCase) ...
>>>> ok
>>>> 51: test_shuffle (TestSequenceFunctions.SequenceFunctionsTestCase) ...
>>>> ok
>>>> 52: test_persistent_variables
>>>> (TestPersistentVariables.PersistentVariablesTestCase)
>>>>     Test that lldb persistent variables works correctly. ... FAIL
>>>> 53: test_expr_commands (Test8638051.Radar8638051TestCase)
>>>>     The following expression commands should not crash. ... FAIL
>>>> 54: test_evaluate_expression_python
>>>> (TestExprs.BasicExprCommandsTestCase)
>>>>     Test SBFrame.EvaluateExpression() API for evaluating an
>>>> expression. ... FAIL
>>>> 55: test_expr_commands_can_handle_quotes
>>>> (TestExprs.BasicExprCommandsTestCase)
>>>>     Throw some expression commands with quotes at lldb. ... Stack
>>>>dump:
>>>> 0.    <eof> parser at end of file
>>>> 1.    Parse:2:1: Generating code for declaration
>>>> '$__lldb_valid_pointer_check'
>>>> Segmentation fault
>>>>
>>>> _______________________________________________
>>>> lldb-dev mailing list
>>>> lldb-dev at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>
>>
>





More information about the lldb-dev mailing list