Thanks, I will be waiting for it. Filipe
On Fri, Jul 29, 2011 at 12:11, Greg Clayton <[email protected]> wrote: > Sean Callanan has a patch that is coming that improves C++ expressions. We > know of this issue and are currently working to resolve it. The fix should > be landing in the next day or so. > > Greg Clayton > > On Jul 28, 2011, at 6:47 PM, Filipe Cabecinhas wrote: > > > Hi all, > > > > I'm trying to debug lldb to see where the active thread gets unselected, > using my patch for the "frame return" command. > > > > But I'm having some problems. Most of the time, I can't evaluate C++ > expressions, like "m_threads[idx]" (missing symbol: …), or > "process->GetSelectedThread()" (call is ambiguous, but no candidates are > given). > > Since I was having these errors, I tried checking out if I could find > those candidates while clang parsed the AST. > > > > Right now, I'm running a test program in lldb in lldb in lldb… It's not > that fun :-) > > > > I will stop the bottom debugger in CommandObjectThread.cpp:413 and, in > the middle lldb, run the command: > > frame #0: 0x000000010031d875 > LLDB`CommandObjectThreadStepWithTypeAndScope::Execute(lldb_private::Args&, > lldb_private::CommandReturnObject&) + 197 at CommandObjectThread.cpp:413 > > 410 else > > 411 { > > 412 const uint32_t num_threads = > process->GetThreadList().GetSize(); > > -> 413 Thread *thread = NULL; > > 414 > > 415 if (command.GetArgumentCount() == 0) > > 416 { > > 1) expr process->GetThreadList() > > > > > > This command, normally, will error out with: > > error: call to member function 'GetThreadList' is ambiguous > > note: candidate function > > note: candidate function > > error: 1 errors parsing expression > > > > Not listing the candidate functions (as it should?). If I stop that lldb, > I can't check the Diagnostic object (with the outermost lldb): > > frame #0: 0x000000010042b182 > LLDB`clang::CompilerInstance::getDiagnostics() const + 114 at > CompilerInstance.h:254 > > 251 /// Get the current diagnostics engine. > > 252 Diagnostic &getDiagnostics() const { > > 253 assert(Diagnostics && "Compiler instance has no > diagnostics!"); > > -> 254 return *Diagnostics; > > 255 } > > 256 > > 257 /// setDiagnostics - Replace the current diagnostics > engine. > > 0) expr *(Diagnostics.Obj) > > Assertion failed: (D && "Cannot get layout of forward declarations!"), > function getASTRecordLayout, file RecordLayoutBuilder.cpp, line 1835. > > [1] 73430 illegal hardware instruction lldb > > > > This triggers an assert and shuts down clang. I have built lldb with the > debug version of llvm+clang, as it says on the docs/ folder. > > > > Shouldn't clang+lldb be able to get that information? Any clues on where > the bug might lie? (clang? lldb?) > > > > Regards,nbsp; Filipe Cabecinhas > > > > P.S: XCode blows up, too, which shouldn't happen. > > _______________________________________________ > > lldb-dev mailing list > > [email protected] > > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev > >
_______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
