Greg Clayton wrote: > Not really. If you can send me a concrete example of something that isn't > working, it might help.
Reporting progress. 1. `im loo -t` only ever finds one "best match", and the plist seems to have no effect on it. 2. The plist parsing code does get executed. I checked with the debugger. I also checked symlink versus non-symlinked paths in the plist, which I'd missed last time. dwarfdump does not seem to read it, and `im loo` says nothing different, so I have no idea if anything really got remapped. 3. I managed to catch this "unstable" case: you try something, it prints a huge error, you try something else in a different frame with the same type, it prints fine, you come back to the original thing and there's a smaller error. frame #0: 0x0000000101c3ce8c libmwcgir_vm_rt.dylib`(anonymous namespace)::CgJITMemManager::endFunctionBody(this=0x000000010e8637b0, F=0x000000010a62ccc0, FunctionStart="�?^\n\x01", FunctionEnd="����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������...") + 28 at CgJITMemoryManager.cpp:437 434 (void)FunctionStart; 435 (void)FunctionEnd; 436 -> 437 assert(FunctionEnd > FunctionStart); 438 assert(FunctionStart == (uint8_T *)(CurBlock+1) && 439 "Mismatched function start/end!"); 440 (lldb) p F error: field 'BasicBlocks' declared with incompatible types in different translation units ('BasicBlockListType' (aka 'llvm::iplist<llvm::BasicBlock, llvm::ilist_traits<llvm::BasicBlock> >') vs. 'BasicBlockListType' (aka 'llvm::iplist<llvm::BasicBlock, llvm::ilist_traits<llvm::BasicBlock> >')) error: field 'ArgumentList' declared with incompatible types in different translation units ('ArgumentListType' (aka 'llvm::iplist<llvm::Argument, llvm::ilist_traits<llvm::Argument> >') vs. 'ArgumentListType' (aka 'llvm::iplist<llvm::Argument, llvm::ilist_traits<llvm::Argument> >')) error: field 'BasicBlocks' declared with incompatible types in different translation units ('BasicBlockListType' (aka 'llvm::iplist<llvm::BasicBlock, llvm::ilist_traits<llvm::BasicBlock> >') vs. 'BasicBlockListType' (aka 'llvm::iplist<llvm::BasicBlock, llvm::ilist_traits<llvm::BasicBlock> >')) error: field 'Context' declared with incompatible types in different translation units ('llvm::LLVMContext &' vs. 'llvm::LLVMContext &') error: field 'GlobalList' declared with incompatible types in different translation units ('GlobalListType' (aka 'llvm::iplist<llvm::GlobalVariable, llvm::ilist_traits<llvm::GlobalVariable> >') vs. 'GlobalListType' (aka 'llvm::iplist<llvm::GlobalVariable, llvm::ilist_traits<llvm::GlobalVariable> >')) error: field 'FunctionList' declared with incompatible types in different translation units ('FunctionListType' (aka 'llvm::iplist<llvm::Function, llvm::ilist_traits<llvm::Function> >') vs. 'FunctionListType' (aka 'llvm::iplist<llvm::Function, llvm::ilist_traits<llvm::Function> >')) error: field 'AliasList' declared with incompatible types in different translation units ('AliasListType' (aka 'llvm::iplist<llvm::GlobalAlias, llvm::ilist_traits<llvm::GlobalAlias> >') vs. 'AliasListType' (aka 'llvm::iplist<llvm::GlobalAlias, llvm::ilist_traits<llvm::GlobalAlias> >')) error: field 'NamedMDList' declared with incompatible types in different translation units ('NamedMDListType' (aka 'llvm::ilist<llvm::NamedMDNode>') vs. 'NamedMDListType' (aka 'llvm::ilist<llvm::NamedMDNode>')) error: field 'GlobalScopeAsm' declared with incompatible types in different translation units ('string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') vs. 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >')) error: field 'ComdatSymTab' declared with incompatible types in different translation units ('ComdatSymTabType' (aka 'llvm::StringMap<llvm::Comdat, llvm::MallocAllocator>') vs. 'ComdatSymTabType' (aka 'llvm::StringMap<llvm::Comdat, llvm::MallocAllocator>')) error: field 'ModuleID' declared with incompatible types in different translation units ('string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') vs. 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >')) error: field 'TargetTriple' declared with incompatible types in different translation units ('string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') vs. 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >')) error: field 'DataLayoutStr' declared with incompatible types in different translation units ('string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') vs. 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >')) error: field 'Parent' declared with incompatible types in different translation units ('llvm::Module *' vs. 'llvm::Module *') error: field 'Parent' declared with incompatible types in different translation units ('llvm::Module *' vs. 'llvm::Module *') error: field 'Context' declared with incompatible types in different translation units ('llvm::LLVMContext &' vs. 'llvm::LLVMContext &') note: declared here with type 'BasicBlockListType' (aka 'llvm::iplist<llvm::BasicBlock, llvm::ilist_traits<llvm::BasicBlock> >') note: declared here with type 'ArgumentListType' (aka 'llvm::iplist<llvm::Argument, llvm::ilist_traits<llvm::Argument> >') note: declared here with type 'BasicBlockListType' (aka 'llvm::iplist<llvm::BasicBlock, llvm::ilist_traits<llvm::BasicBlock> >') note: declared here with type 'llvm::LLVMContext &' note: declared here with type 'GlobalListType' (aka 'llvm::iplist<llvm::GlobalVariable, llvm::ilist_traits<llvm::GlobalVariable> >') note: declared here with type 'FunctionListType' (aka 'llvm::iplist<llvm::Function, llvm::ilist_traits<llvm::Function> >') note: declared here with type 'AliasListType' (aka 'llvm::iplist<llvm::GlobalAlias, llvm::ilist_traits<llvm::GlobalAlias> >') note: declared here with type 'NamedMDListType' (aka 'llvm::ilist<llvm::NamedMDNode>') note: declared here with type 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') note: declared here with type 'ComdatSymTabType' (aka 'llvm::StringMap<llvm::Comdat, llvm::MallocAllocator>') note: declared here with type 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') note: declared here with type 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') note: declared here with type 'string' (aka 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >') note: declared here with type 'llvm::Module *' note: declared here with type 'llvm::Module *' note: declared here with type 'llvm::LLVMContext &' error: 16 errors parsing expression (lldb) f 4 frame #4: 0x0000000102ea820f libmwcgir_vm_rt.dylib`llvm::FPPassManager::runOnFunction(this=0x000000010e864360, F=0x000000010a62ccc0) + 431 at LegacyPassManager.cpp:1545 1542 PassManagerPrettyStackEntry X(FP, F); 1543 TimeRegion PassTimer(getPassTimer(FP)); 1544 -> 1545 LocalChanged |= FP->runOnFunction(F); 1546 } 1547 1548 Changed |= LocalChanged; (lldb) p F (llvm::Function) $0 = { llvm::GlobalObject = { llvm::GlobalValue = { llvm::Constant = { llvm::User = { llvm::Value = { VTy = 0x000000010d8038e0 UseList = 0x000000010b805f50 Name = 0x000000010a62cd60 SubclassID = '\x02' HasValueHandle = '\x01' SubclassOptionalData = '\0' SubclassData = 0 } NumOperands = 0 OperandList = 0x0000000000000000 } } Linkage = ExternalLinkage Visibility = 0 UnnamedAddr = 0 DllStorageClass = 0 ThreadLocal = 0 SubClassData = 0 Parent = 0x000000010b901250 } Section = "" ObjComdat = 0x0000000000000000 } llvm::ilist_node<llvm::Function> = { llvm::ilist_half_node<llvm::Function> = { Prev = 0x000000010a62cb50 } Next = 0x000000010a6375d0 } BasicBlocks = { llvm::ilist_traits<llvm::BasicBlock> = { Sentinel = { Prev = 0x000000010a634b70 } } Head = 0x000000010a62cfd0 } ArgumentList = { llvm::ilist_traits<llvm::Argument> = { Sentinel = { Prev = 0x000000010a62ce40 } } Head = 0x000000010a62ce00 } SymTab = 0x000000010a62cd90 AttributeSets = { pImpl = 0x0000000000000000 } } (lldb) f 0 frame #0: 0x0000000101c3ce8c libmwcgir_vm_rt.dylib`(anonymous namespace)::CgJITMemManager::endFunctionBody(this=0x000000010e8637b0, F=0x000000010a62ccc0, FunctionStart="�?^\n\x01", FunctionEnd="����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������...") + 28 at CgJITMemoryManager.cpp:437 434 (void)FunctionStart; 435 (void)FunctionEnd; 436 -> 437 assert(FunctionEnd > FunctionStart); 438 assert(FunctionStart == (uint8_T *)(CurBlock+1) && 439 "Mismatched function start/end!"); 440 (lldb) p F error: field '__r_' declared with incompatible types in different translation units ('std::__1::__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >' vs. 'std::__1::__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >') note: declared here with type 'std::__1::__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >' error: 1 errors parsing expression (lldb) im loo -t "std::__1::__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >" Best match found in /mathworks/devel/sbs/34/rramacha.idivide-final-lap/matlab/bin/maci64/libmwcgir_vm_rt.dylib: id = {0x000457b5}, name = "__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >", qualified = "std::__1::__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >", byte-size = 24, decl = memory:2297, compiler_type = "class __compressed_pair : private std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char>, 2> { __compressed_pair(); explicit __compressed_pair(_T1_param); explicit __compressed_pair(_T2_param); __compressed_pair(_T1_param, _T2_param); _T1_reference first(); _T1_const_reference first() const; _T2_reference second(); _T2_const_reference second() const; void swap(std::__1::__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> > &); }" Before the recent patch you developed, the variable on f 4 also failed to print. More insights into what might be going on? _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev