summaryrefslogtreecommitdiff
path: root/lldb/source/Target/ThreadPlanCallFunction.cpp
AgeCommit message (Collapse)Author
2010-10-26Fixed a problem where function calls on i386 weren't Sean Callanan
being generated correctly. Also added a messy way to single-step through expressions that I will improve soon. llvm-svn: 117342
2010-10-26The call function thread plan should allow internal breakpoints to continue ↵Jim Ingham
on. Also made stopping in mid-expression evaluation when we hit a breakpoint/signal work. llvm-svn: 117341
2010-10-19Removed a bit of dead code. Thanks to EricSean Callanan
Christopher for pointing it out. llvm-svn: 116871
2010-10-19Expressions now claim responsibility for all stopsSean Callanan
that occur while they run. This means that they clean up after themselves even when they crash. llvm-svn: 116870
2010-09-21Removed the hacky "#define this ___clang_this" handlerSean Callanan
for C++ classes. Replaced it with a less hacky approach: - If an expression is defined in the context of a method of class A, then that expression is wrapped as ___clang_class::___clang_expr(void*) { ... } instead of ___clang_expr(void*) { ... }. - ___clang_class is resolved as the type of the target of the "this" pointer in the method the expression is defined in. - When reporting the type of ___clang_class, a method with the signature ___clang_expr(void*) is added to that class, so that Clang doesn't complain about a method being defined without a corresponding declaration. - Whenever the expression gets called, "this" gets looked up, type-checked, and then passed in as the first argument. This required the following changes: - The ABIs were changed to support passing of the "this" pointer as part of trivial calls. - ThreadPlanCallFunction and ClangFunction were changed to support passing of an optional "this" pointer. - ClangUserExpression was extended to perform the wrapping described above. - ClangASTSource was changed to revert the changes required by the hack. - ClangExpressionParser, IRForTarget, and ClangExpressionDeclMap were changed to handle different manglings of ___clang_expr flexibly. This meant no longer searching for a function called ___clang_expr, but rather looking for a function whose name *contains* ___clang_expr. - ClangExpressionParser and ClangExpressionDeclMap now remember whether "this" is required, and know how to look it up as necessary. A few inheritance bugs remain, and I'm trying to resolve these. But it is now possible to use "this" as well as refer implicitly to member variables, when in the proper context. llvm-svn: 114384
2010-09-14Moved the section load list up into the target so we can use the targetGreg Clayton
to symbolicate things without the need for a valid process subclass. llvm-svn: 113895
2010-07-31Added support for rewriting objc_msgSend so we canSean Callanan
call Objective-C methods from expressions. Also added some more logging to the function-calling thread plan so that we can see the registers when a function finishes. Also documented things maybe a bit better. llvm-svn: 109938
2010-07-16Fix constructor initialization order. Patch by Bill Lynch.Benjamin Kramer
llvm-svn: 108524
2010-06-19Two changes in this checkin. Added a ThreadPlanKind so that I can do some ↵Jim Ingham
reasoning based on the kind of thread plan without having to use RTTI. Removed the ThreadPlanContinue and replaced with a ShouldAutoContinue query that serves the same purpose. Having to push another plan to assert that if there's no other indication the target should continue when this plan is popped was flakey and error prone. This method is more stable, and fixed problems we were having with thread specific breakpoints. llvm-svn: 106378
2010-06-08Initial checkin of lldb code from internal Apple repo.Chris Lattner
llvm-svn: 105619