[lldb-dev] Running LLDB tests

Jim Ingham jingham at apple.com
Fri Jan 28 14:42:43 PST 2011


Try completing all the steps in that doc.  I can't debug at all on 10.6.6 unless I do all the steps I described in that little document.  So it is at least worth giving that a shot - maybe you are lucking out a little, but not quite enough, so that it works directly but not under Python?  Note the binary that needs to get properly codesigned is debugserver, since that's the tool that has to have the rights to access the task port of the debugee.   It doesn't matter whether lldb is properly codesigned at present.

If you want to know for sure which LLDB you are using (Python just uses the framework and not the lldb binary), then do:

(setenv DYLD_PRINT_LIBRARIES YES; ./dotest.py)

or the bash equivalent, and then watch the testsuite run, and note from whence it is picking up LLDB.framework.

Jim


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/TestAbbreviations.
> py", line 66, in test_with_dsym
>    self.running_abbreviations ()
>  File 
> "/Users/warrenpaul/Dev/lldb/lldb/test/abbreviation_tests/TestAbbreviations.
> 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
>> 
> 
> 
> _______________________________________________
> 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