[lldb-dev] lldb tests

Filipe Cabecinhas filcab at gmail.com
Thu Mar 29 10:40:03 PDT 2012


Hi Enrico, 

That solves the @rpath mystery, thanks.
I will try with the release version and see if I get the same error.

Thanks, 

  Filipe


On Thursday, March 29, 2012 at 6:08 PM, Greg Clayton wrote:

> Filipe,
> 
> You should be using the "Release" configuration. The "BuildAndIntegration" configuration is for when you intend to build and install the binary into /usr/bin/lldb with the framework in /System/Library/Frameworks/LLDB.framework.
> 
> The @rpath is a trick that lets the dynamic loader find shared libraries that are relative to each other in directories. When "lldb" is in "/usr/bin" the relative rpath for LLDB.framework is contained in a load command:
> 
> otool -lv /usr/bin/lldb
> ...
> Load command 17
> cmd LC_RPATH
> cmdsize 64
> path @loader_path/../../System/Library/PrivateFrameworks (offset 12)
> Load command 18
> 
> 
> So, the "Debug" and "Release" builds set the rpath so that lldb is expected to be in the build folder. The "BuildAndIntegration" will set the rpath and expects you to install your binaries and this is typically only used for Apple builds that produce tools for release.
> 
> Greg Clayton
> 
> 
> On Mar 29, 2012, at 8:01 AM, Filipe Cabecinhas wrote:
> 
> > Hi Enrico,
> > 
> > That's weird. Let's try to find out what went wrong. Previously I was using an up-to-date git checkout, but now I checked out the trunk directly from subversion so we can be sure we're on the same revision.
> > 
> > I have:
> > Mac OS X 10.7.3
> > swig 2.0.4
> > Python 2.7.1
> > libedit.3.0.dylib
> > Apple clang version 3.1 (tags/Apple/clang-318.0.58)
> > 
> > I build lldb with xcodebuild -configuration Debug
> > For the x86_64 arch:
> > file build/Debug/lldb
> > build/Debug/lldb: Mach-O 64-bit executable x86_64
> > 
> > 
> > If I try a BuildAndIntegration build (without the -configuration flag), I get this error when running lldb:
> > [trunk:153576//test]% ../build/BuildAndIntegration/lldb
> > dyld: Library not loaded: @rpath/LLDB.framework/LLDB
> > Referenced from: /Users/filcab/Desktop/lldb/test/../build/BuildAndIntegration/lldb
> > Reason: image not found
> > 
> > 
> > Since I usually use the Debug configuration, I have no idea what's going on. LLDB.framework is in its place (next do lldb) and has the LLDB symlink and file in place, too.
> > 
> > Any clues?
> > 
> > Regards,
> > 
> > Filipe 
> > 
> > Filipe
> > 
> > 
> > On Wednesday, March 28, 2012 at 4:09 PM, Enrico Granata wrote:
> > 
> > > Hi.
> > > Not sure what's wrong:
> > > 
> > > Enricos-MacBook-Pro:test egranata$ make -C functionalities/data-formatter/data-formatter-stl/libcxx/map
> > > clang++ -gdwarf-2 -O0 -arch x86_64 -stdlib=libc++ -O0 -c -o main.o main.cpp
> > > clang++ -gdwarf-2 -O0 -arch x86_64 -stdlib=libc++ main.o -o "a.out"
> > > dsymutil -o "a.out.dSYM" "a.out"
> > > Enricos-MacBook-Pro:test egranata$ ./dotest.py -A x86_64 -C clang -v -t -f LibcxxMapDataFormatterTestCase.data_formatter_commands
> > > LLDB build dir: /Volumes/work/egranata/lldb/build/Debug
> > > LLDB-135
> > > Path: /Volumes/work/egranata/lldb
> > > URL: https://enrico@llvm.org/svn/llvm-project/lldb/trunk
> > > Repository Root: https://enrico@llvm.org/svn/llvm-project
> > > Repository UUID: 91177308-0d34-0410-b5e6-96231b3b80d8
> > > Revision: 153542
> > > Node Kind: directory
> > > Schedule: normal
> > > Last Changed Author: enrico
> > > Last Changed Rev: 153541
> > > Last Changed Date: 2012-03-27 14:49:20 -0700 (Tue, 27 Mar 2012)
> > > 
> > > 
> > > 
> > > Session logs for test failures/errors/unexpected successes will go into directory '2012-03-28-08_07_33'
> > > Command invoked: python ./dotest.py -A x86_64 -C clang -v -t -f LibcxxMapDataFormatterTestCase.data_formatter_commands
> > > compilers=['clang']
> > > 
> > > Configuration: arch=x86_64 compiler=clang
> > > ----------------------------------------------------------------------
> > > Collected 1 test
> > > 
> > > Change dir to: /Volumes/work/egranata/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map
> > > 1: data_formatter_commands (TestDataFormatterLibccMap.LibcxxMapDataFormatterTestCase)
> > > Test that that file and class static variables display correctly. ... runCmd: file a.out
> > > output: Current executable set to 'a.out' (x86_64).
> > > 
> > > 
> > > runCmd: breakpoint set -f main.cpp -l 18
> > > output: Breakpoint created: 1: file ='main.cpp', line = 18, locations = 2
> > > 
> > > 
> > > Expecting start string: Breakpoint created: 1: file ='main.cpp', line = 18
> > > Matched
> > > 
> > > runCmd: run
> > > output: Process 63894 launched: '/Volumes/work/egranata/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/a.out' (x86_64)
> > > 
> > > 
> > > runCmd: thread list
> > > output: Process 63894 stopped
> > > * thread #1: tid = 0x1f03, 0x0000000100001272 a.out`main + 50 at main.cpp:18, stop reason = breakpoint 1.1
> > > 
> > > 
> > > Expecting sub string: stopped
> > > Matched
> > > 
> > > Expecting sub string: stop reason = breakpoint
> > > Matched
> > > 
> > > Adding tearDown hook: def cleanup():
> > > self.runCmd('type format clear', check=False)
> > > self.runCmd('type summary clear', check=False)
> > > self.runCmd('type filter clear', check=False)
> > > self.runCmd('type synth clear', check=False)
> > > self.runCmd("settings set target.max-children-count 256", check=False)
> > > 
> > > 
> > > runCmd: image list
> > > output: [ 0] 5C5C5498-A95A-32CC-9A48-353CFF04179A 0x0000000100000000 /Volumes/work/egranata/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/a.out 
> > > /Volumes/work/egranata/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/a.out.dSYM/Contents/Resources/DWARF/a.out
> > > [ 1] 0CD1B35B-A28F-32DA-B72E-452EAD609613 0x00007fff5fc00000 /usr/lib/dyld 
> > > [ 2] C0EFFF1B-0FEB-3F99-BE54-506B35B555A9 0x00007fff90339000 /usr/lib/libc++.1.dylib 
> > > [ 3] 7BEBB139-50BB-3112-947A-F4AA168F991C 0x00007fff91f4e000 /usr/lib/libSystem.B.dylib 
> > > [ 4] 8FF3D766-D678-36F6-84AC-423C878E6D14 0x00007fff9030e000 /usr/lib/libc++abi.dylib 
> > > [ 5] B7757E2E-5A7D-362E-AB71-785FE79E1527 0x00007fff94222000 /usr/lib/system/libcache.dylib 
> > > [ 6] A5B9778E-11C3-3F61-B740-1F2114E967FB 0x00007fff8af52000 /usr/lib/system/libcommonCrypto.dylib 
> > > [ 7] 98ECD5F6-E85C-32A5-98CD-8911230CB66A 0x00007fff8bfe9000 /usr/lib/system/libcompiler_rt.dylib 
> > > [ 8] 172B1985-F24A-34E9-8D8B-A2403C9A0399 0x00007fff8e58e000 /usr/lib/system/libcopyfile.dylib 
> > > [ 9] 712AAEAC-AD90-37F7-B71F-293FF8AE8723 0x00007fff8db82000 /usr/lib/system/libdispatch.dylib 
> > > [ 10] 718A135F-6349-354A-85D5-430B128EFD57 0x00007fff89059000 /usr/lib/system/libdnsinfo.dylib 
> > > [ 11] F1903B7A-D3FF-3390-909A-B24E09BAD1A5 0x00007fff9489d000 /usr/lib/system/libdyld.dylib 
> > > [ 12] 61EFED6A-A407-301E-B454-CD18314F0075 0x00007fff8afbf000 /usr/lib/system/libkeymgr.dylib 
> > > [ 13] 39EF04F2-7F0C-3435-B785-BF283727FFBD 0x00007fff8e39f000 /usr/lib/system/liblaunch.dylib 
> > > [ 14] D86F63EC-D2BD-32E0-8955-08B5EAFAD2CC 0x00007fff8e398000 /usr/lib/system/libmacho.dylib 
> > > [ 15] FF83AFF7-42B2-306E-90AF-D539C51A4542 0x00007fff8dbdb000 /usr/lib/system/libmathCommon.A.dylib 
> > > [ 16] 48656562-FF20-3B55-9F93-407ACA7341C0 0x00007fff8dc20000 /usr/lib/system/libquarantine.dylib 
> > > [ 17] 739E6C83-AA52-3C6C-A680-B37FE2888A04 0x00007fff8e576000 /usr/lib/system/libremovefile.dylib 
> > > [ 18] 8BCA214A-8992-34B2-A8B9-B74DEACA1869 0x00007fff8e396000 /usr/lib/system/libsystem_blocks.dylib 
> > > [ 19] FF69F06E-0904-3C08-A5EF-536FAFFFDC22 0x00007fff9524c000 /usr/lib/system/libsystem_c.dylib 
> > > [ 20] 7749128E-D0C5-3832-861C-BC9913F774FA 0x00007fff951aa000 /usr/lib/system/libsystem_dnssd.dylib 
> > > [ 21] 35F90252-2AE1-32C5-8D34-782C614D9639 0x00007fff9400b000 /usr/lib/system/libsystem_info.dylib 
> > > [ 22] 69F2F501-72D8-3B3B-8357-F4418B3E1348 0x00007fff945a5000 /usr/lib/system/libsystem_kernel.dylib 
> > > [ 23] 5DE7024E-1D2D-34A2-80F4-08326331A75B 0x00007fff959f7000 /usr/lib/system/libsystem_network.dylib 
> > > [ 24] A4D651E3-D1C6-3934-AD49-7A104FD14596 0x00007fff89b58000 /usr/lib/system/libsystem_notify.dylib 
> > > [ 25] 5087ADAD-D34D-3844-9D04-AFF93CED3D92 0x00007fff8cf42000 /usr/lib/system/libsystem_sandbox.dylib 
> > > [ 26] C67B3B14-866C-314F-87FF-8025BEC2CAAC 0x00007fff902a6000 /usr/lib/system/libunc.dylib 
> > > [ 27] 1E9C6C8C-CBE8-3F4B-A5B5-E03E3AB53231 0x00007fff9485b000 /usr/lib/system/libunwind.dylib 
> > > [ 28] 26C05F31-E809-3B47-AF42-1460971E3AC3 0x00007fff8af95000 /usr/lib/system/libxpc.dylib 
> > > 
> > > 
> > > Expecting sub string: libc++.1.dylib
> > > Matched
> > > 
> > > Expecting sub string: libc++abi.dylib
> > > Matched
> > > 
> > > runCmd: frame variable ii -T
> > > output: (std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<pair<const int, int> > >) ii = size=0 {}
> > > 
> > > 
> > > runCmd: type summary add -x "std::__1::map<" --summary-string "map has ${svar%#} items" -e
> > > output: 
> > > 
> > > runCmd: frame variable ii
> > > output: (std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<pair<const int, int> > >) ii = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame variable ii
> > > output: (std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<pair<const int, int> > >) ii = map has 2 items {
> > > [0] = {
> > > first = 0
> > > second = 0
> > > }
> > > [1] = {
> > > first = 1
> > > second = 1
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 2 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 0
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > Expecting sub string: [1] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 1
> > > Matched
> > > 
> > > Expecting sub string: second = 1
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame variable ii
> > > output: (std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<pair<const int, int> > >) ii = map has 4 items {
> > > [0] = {
> > > first = 0
> > > second = 0
> > > }
> > > [1] = {
> > > first = 1
> > > second = 1
> > > }
> > > [2] = {
> > > first = 2
> > > second = 0
> > > }
> > > [3] = {
> > > first = 3
> > > second = 1
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 4 items
> > > Matched
> > > 
> > > Expecting sub string: [2] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 2
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > Expecting sub string: [3] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 3
> > > Matched
> > > 
> > > Expecting sub string: second = 1
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame select 0
> > > output: frame #0: 0x0000000100001422 a.out`main + 482 at main.cpp:26
> > > a.out`main + 482 at main.cpp:26:
> > > -> 0x100001422: movl $85, -868(%rbp) 
> > > 0x10000142c: leaq -868(%rbp), %rsi 
> > > 0x100001433: leaq -808(%rbp), %rdi 
> > > 0x10000143a: callq 0x10000b416 ; std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, int> > >::operator[](int const&)
> > > 
> > > 
> > > runCmd: frame variable ii
> > > output: (std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<pair<const int, int> > >) ii = map has 8 items {
> > > [0] = {
> > > first = 0
> > > second = 0
> > > }
> > > [1] = {
> > > first = 1
> > > second = 1
> > > }
> > > [2] = {
> > > first = 2
> > > second = 0
> > > }
> > > [3] = {
> > > first = 3
> > > second = 1
> > > }
> > > [4] = {
> > > first = 4
> > > second = 0
> > > }
> > > [5] = {
> > > first = 5
> > > second = 1
> > > }
> > > [6] = {
> > > first = 6
> > > second = 0
> > > }
> > > [7] = {
> > > first = 7
> > > second = 1
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 8 items
> > > Matched
> > > 
> > > Expecting sub string: [5] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 5
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > Expecting sub string: [7] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 7
> > > Matched
> > > 
> > > Expecting sub string: second = 1
> > > Matched
> > > 
> > > runCmd: p ii
> > > output: (std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<pair<const int, int> > >) $0 = map has 8 items {
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [0] = {
> > > (int) first = 0
> > > (int) second = 0
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [1] = {
> > > (int) first = 1
> > > (int) second = 1
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [2] = {
> > > (int) first = 2
> > > (int) second = 0
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [3] = {
> > > (int) first = 3
> > > (int) second = 1
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [4] = {
> > > (int) first = 4
> > > (int) second = 0
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [5] = {
> > > (int) first = 5
> > > (int) second = 1
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [6] = {
> > > (int) first = 6
> > > (int) second = 0
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [7] = {
> > > (int) first = 7
> > > (int) second = 1
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 8 items
> > > Matched
> > > 
> > > Expecting sub string: [5] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 5
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > Expecting sub string: [7] = {
> > > Matched
> > > 
> > > Expecting sub string: first = 7
> > > Matched
> > > 
> > > Expecting sub string: second = 1
> > > Matched
> > > 
> > > runCmd: frame variable ii[0]
> > > output: (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) [0] = {
> > > first = 0
> > > second = 0
> > > }
> > > 
> > > 
> > > Expecting sub string: first = 0
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > runCmd: frame variable ii[3]
> > > output: (std::__1::__tree_node<std::__1::pair<int, int>, void *>::value_type) ii[3] = {
> > > first = 3
> > > second = 1
> > > }
> > > 
> > > 
> > > Expecting sub string: first =
> > > Matched
> > > 
> > > Expecting sub string: second =
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame select 0
> > > output: frame #0: 0x000000010000151f a.out`main + 735 at main.cpp:32
> > > a.out`main + 735 at main.cpp:32:
> > > -> 0x10000151f: leaq -896(%rbp), %rdi 
> > > 0x100001526: leaq -928(%rbp), %rsi 
> > > 0x10000152d: callq 0x10000b3b6 ; std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > >::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
> > > 0x100001532: movq %rax, -1320(%rbp) 
> > > 
> > > 
> > > runCmd: frame variable ii
> > > output: (std::__1::map<int, int, std::__1::less<int>, std::__1::allocator<pair<const int, int> > >) ii = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > runCmd: frame variable si -T
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, int> > >) si = map has 0 items {}
> > > 
> > > 
> > > runCmd: frame variable si
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, int> > >) si = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame select 0
> > > output: frame #0: 0x00000001000015e0 a.out`main + 928 at string:1781
> > > 1778 {
> > > 1779 #ifdef _LIBCPP_DEBUG
> > > 1780 assert(__s != 0);
> > > -> 1781 #endif
> > > 1782 __init(__s, traits_type::length(__s));
> > > 1783 }
> > > 1784 
> > > 
> > > 
> > > runCmd: frame variable si
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, int> > >) si = map has 1 items {
> > > [0] = {
> > > first = "zero"
> > > second = 0
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 1 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "zero"
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame select 0
> > > output: frame #0: 0x000000010000189f a.out`main + 1631 at main.cpp:36
> > > a.out`main + 1631 at main.cpp:36:
> > > -> 0x10000189f: leaq -896(%rbp), %rdi 
> > > 0x1000018a6: leaq -1024(%rbp), %rsi 
> > > 0x1000018ad: callq 0x10000b3b6 ; std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > >::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
> > > 0x1000018b2: movq %rax, -1448(%rbp) 
> > > 
> > > 
> > > runCmd: frame variable si
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, int> > >) si = map has 4 items {
> > > [0] = {
> > > first = "one"
> > > second = 1
> > > }
> > > [1] = {
> > > first = "three"
> > > second = 3
> > > }
> > > [2] = {
> > > first = "two"
> > > second = 2
> > > }
> > > [3] = {
> > > first = "zero"
> > > second = 0
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 4 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "zero"
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > Expecting sub string: [1] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "one"
> > > Matched
> > > 
> > > Expecting sub string: second = 1
> > > Matched
> > > 
> > > Expecting sub string: [2] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "two"
> > > Matched
> > > 
> > > Expecting sub string: second = 2
> > > Matched
> > > 
> > > Expecting sub string: [3] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "three"
> > > Matched
> > > 
> > > Expecting sub string: second = 3
> > > Matched
> > > 
> > > runCmd: p si
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, int> > >) $1 = map has 4 items {
> > > (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void *>::value_type) [0] = {
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) first = "one"
> > > (int) second = 1
> > > }
> > > (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void *>::value_type) [1] = {
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) first = "three"
> > > (int) second = 3
> > > }
> > > (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void *>::value_type) [2] = {
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) first = "two"
> > > (int) second = 2
> > > }
> > > (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void *>::value_type) [3] = {
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) first = "zero"
> > > (int) second = 0
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 4 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "zero"
> > > Matched
> > > 
> > > Expecting sub string: second = 0
> > > Matched
> > > 
> > > Expecting sub string: [1] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "one"
> > > Matched
> > > 
> > > Expecting sub string: second = 1
> > > Matched
> > > 
> > > Expecting sub string: [2] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "two"
> > > Matched
> > > 
> > > Expecting sub string: second = 2
> > > Matched
> > > 
> > > Expecting sub string: [3] = 
> > > Matched
> > > 
> > > Expecting sub string: first = "three"
> > > Matched
> > > 
> > > Expecting sub string: second = 3
> > > Matched
> > > 
> > > runCmd: frame variable si[0]
> > > output: (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void *>::value_type) [0] = {
> > > first = "one"
> > > second = 1
> > > }
> > > 
> > > 
> > > Expecting sub string: first = 
> > > Matched
> > > 
> > > Expecting sub string: one
> > > Matched
> > > 
> > > Expecting sub string: second = 1
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame variable si
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, int> > >) si = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame variable is -T
> > > output: (std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<pair<const int, std::__1::basic_string<char> > > >) is = map has 0 items {}
> > > 
> > > 
> > > runCmd: frame variable is
> > > output: (std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<pair<const int, std::__1::basic_string<char> > > >) is = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame variable is
> > > output: (std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<pair<const int, std::__1::basic_string<char> > > >) is = map has 4 items {
> > > [0] = {
> > > first = 1
> > > second = "is"
> > > }
> > > [1] = {
> > > first = 2
> > > second = "smart"
> > > }
> > > [2] = {
> > > first = 3
> > > second = "!!!"
> > > }
> > > [3] = {
> > > first = 85
> > > second = "goofy"
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 4 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "goofy"
> > > Matched
> > > 
> > > Expecting sub string: first = 85
> > > Matched
> > > 
> > > Expecting sub string: [1] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "is"
> > > Matched
> > > 
> > > Expecting sub string: first = 1
> > > Matched
> > > 
> > > Expecting sub string: [2] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "smart"
> > > Matched
> > > 
> > > Expecting sub string: first = 2
> > > Matched
> > > 
> > > Expecting sub string: [3] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "!!!"
> > > Matched
> > > 
> > > Expecting sub string: first = 3
> > > Matched
> > > 
> > > runCmd: p is
> > > output: (std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<pair<const int, std::__1::basic_string<char> > > >) $2 = map has 4 items {
> > > (std::__1::__tree_node<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [0] = {
> > > (int) first = 1
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) second = "is"
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [1] = {
> > > (int) first = 2
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) second = "smart"
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [2] = {
> > > (int) first = 3
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) second = "!!!"
> > > }
> > > (std::__1::__tree_node<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [3] = {
> > > (int) first = 85
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) second = "goofy"
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 4 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "goofy"
> > > Matched
> > > 
> > > Expecting sub string: first = 85
> > > Matched
> > > 
> > > Expecting sub string: [1] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "is"
> > > Matched
> > > 
> > > Expecting sub string: first = 1
> > > Matched
> > > 
> > > Expecting sub string: [2] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "smart"
> > > Matched
> > > 
> > > Expecting sub string: first = 2
> > > Matched
> > > 
> > > Expecting sub string: [3] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "!!!"
> > > Matched
> > > 
> > > Expecting sub string: first = 3
> > > Matched
> > > 
> > > runCmd: frame variable is[0]
> > > output: (std::__1::__tree_node<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [0] = {
> > > first = 1
> > > second = "is"
> > > }
> > > 
> > > 
> > > Expecting sub string: first = 
> > > Matched
> > > 
> > > Expecting sub string: second =
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame variable is
> > > output: (std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<pair<const int, std::__1::basic_string<char> > > >) is = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame variable ss -T
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >) ss = map has 0 items {}
> > > 
> > > 
> > > runCmd: frame variable ss
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >) ss = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame select 0
> > > output: frame #0: 0x0000000100001e10 a.out`main + 3024 at string:1781
> > > 1778 {
> > > 1779 #ifdef _LIBCPP_DEBUG
> > > 1780 assert(__s != 0);
> > > -> 1781 #endif
> > > 1782 __init(__s, traits_type::length(__s));
> > > 1783 }
> > > 1784 
> > > 
> > > 
> > > runCmd: frame variable ss
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >) ss = map has 3 items {
> > > [0] = {
> > > first = "casa"
> > > second = "house"
> > > }
> > > [1] = {
> > > first = "ciao"
> > > second = "hello"
> > > }
> > > [2] = {
> > > first = "gatto"
> > > second = "cat"
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 3 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "hello"
> > > Matched
> > > 
> > > Expecting sub string: first = "ciao"
> > > Matched
> > > 
> > > Expecting sub string: [1] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "house"
> > > Matched
> > > 
> > > Expecting sub string: first = "casa"
> > > Matched
> > > 
> > > Expecting sub string: [2] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "cat"
> > > Matched
> > > 
> > > Expecting sub string: first = "gatto"
> > > Matched
> > > 
> > > runCmd: p ss
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >) $3 = map has 3 items {
> > > (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [0] = {
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) first = "casa"
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) second = "house"
> > > }
> > > (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [1] = {
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) first = "ciao"
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) second = "hello"
> > > }
> > > (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) [2] = {
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) first = "gatto"
> > > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) second = "cat"
> > > }
> > > }
> > > 
> > > 
> > > Expecting sub string: map has 3 items
> > > Matched
> > > 
> > > Expecting sub string: [0] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "hello"
> > > Matched
> > > 
> > > Expecting sub string: first = "ciao"
> > > Matched
> > > 
> > > Expecting sub string: [1] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "house"
> > > Matched
> > > 
> > > Expecting sub string: first = "casa"
> > > Matched
> > > 
> > > Expecting sub string: [2] = 
> > > Matched
> > > 
> > > Expecting sub string: second = "cat"
> > > Matched
> > > 
> > > Expecting sub string: first = "gatto"
> > > Matched
> > > 
> > > runCmd: frame variable ss[2]
> > > output: (std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *>::value_type) ss[2] = {
> > > first = "gatto"
> > > second = "cat"
> > > }
> > > 
> > > 
> > > Expecting sub string: gatto
> > > Matched
> > > 
> > > Expecting sub string: cat
> > > Matched
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: n
> > > output: Process 63894 stopped
> > > 
> > > 
> > > runCmd: frame select 0
> > > output: frame #0: 0x0000000100001eb7 a.out`main + 3191 at main.cpp:59
> > > a.out`main + 3191 at main.cpp:59:
> > > -> 0x100001eb7: movq -1680(%rbp), %rdi 
> > > 0x100001ebe: callq 0x10000b37a ; std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::~map()
> > > 0x100001ec3: jmpq 413 
> > > 0x100001ec8: movl %edx, %ecx 
> > > 
> > > 
> > > runCmd: frame variable ss
> > > output: (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >) ss = map has 0 items {}
> > > 
> > > 
> > > Expecting sub string: map has 0 items
> > > Matched
> > > 
> > > Expecting sub string: {}
> > > Matched
> > > 
> > > Executing tearDown hook: def cleanup():
> > > self.runCmd('type format clear', check=False)
> > > self.runCmd('type summary clear', check=False)
> > > self.runCmd('type filter clear', check=False)
> > > self.runCmd('type synth clear', check=False)
> > > self.runCmd("settings set target.max-children-count 256", check=False)
> > > 
> > > 
> > > runCmd: type format clear
> > > check of return status not required
> > > output: 
> > > 
> > > runCmd: type summary clear
> > > check of return status not required
> > > output: 
> > > 
> > > runCmd: type filter clear
> > > check of return status not required
> > > output: 
> > > 
> > > runCmd: type synth clear
> > > check of return status not required
> > > output: 
> > > 
> > > runCmd: settings set target.max-children-count 256
> > > check of return status not required
> > > output: 
> > > 
> > > <bound method SBProcess.Kill of <lldb.SBProcess; proxy of <Swig Object of type 'lldb::SBProcess *' at 0x105db4210> >>: success
> > > 
> > > ok
> > > 
> > > os command: [['/bin/sh', '-c', 'make clean']]
> > > with pid: 63898
> > > stdout: rm -rf "a.out" "a.out.dSYM" main.o main.d 
> > > 
> > > stderr: 
> > > retcode: 0
> > > 
> > > 
> > > Restore dir to: /Volumes/work/egranata/lldb/test
> > > 
> > > ----------------------------------------------------------------------
> > > Ran 1 test in 2.934s
> > > 
> > > OK
> > > Enricos-MacBook-Pro:test egranata$ 
> > > 
> > > 
> > > 
> > > I would have suggested to check out ToT, but you said you see this failure even with a clean checkout.
> > > Is anyone else on the list seeing this?
> > > 
> > > - Enrico
> > > 
> > > On Mar 28, 2012, at 7:25 AM, Filipe Cabecinhas wrote:
> > > > Hi all, 
> > > > 
> > > > I'm trying to run the test suite to check some patches that I've been working on.
> > > > Are the expected failures updated? I have the latest XCode (4.3.2), as well as the latest command line tools.
> > > > 
> > > > This test always hangs, even with a clean checkout (it seemed to me that it was due to an infinite loop in the type summary):
> > > > 
> > > > cd lldb/test
> > > > make -C functionalities/data-formatter/data-formatter-stl/libcxx/map
> > > > ./dotest.py -A x86_64 -C clang -v -t -f LibcxxMapDataFormatterTestCase.data_formatter_commands
> > > > 
> > > > Regards,
> > > > 
> > > > 
> > > > Filipe
> > > > 
> > > > <Failure-TestDataFormatterLibccMap.LibcxxMapDataFormatterTestCase.data_formatter_commands.log>_______________________________________________
> > > > lldb-dev mailing list
> > > > lldb-dev at cs.uiuc.edu (mailto: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 (mailto:lldb-dev at cs.uiuc.edu)
> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
> 






More information about the lldb-dev mailing list