- Sep 15, 2011
-
-
Sean Callanan authored
to execute expressions even in the absence of a process. This allows expressions to run in situations where the target cannot run -- e.g., to perform calculations based on type information, or to inspect a binary's static data. This modification touches the following files: lldb-private-enumerations.h Introduce a new enum specifying the policy for processing an expression. Some expressions should always be JITted, for example if they are functions that will be used over and over again. Some expressions should always be interpreted, for example if the target is unsafe to run. For most, it is acceptable to JIT them, but interpretation is preferable when possible. Target.[h,cpp] Have EvaluateExpression now accept the new enum. ClangExpressionDeclMap.[cpp,h] Add support for the IR interpreter and also make the ClangExpressionDeclMap more robust in the absence of a process. ClangFunction.[cpp,h] Add support for the new enum. IRInterpreter.[cpp,h] New implementation. ClangUserExpression.[cpp,h] Add support for the new enum, and for running expressions in the absence of a process. ClangExpression.h Remove references to the old DWARF-based method of evaluating expressions, because it has been superseded for now. ClangUtilityFunction.[cpp,h] Add support for the new enum. ClangExpressionParser.[cpp,h] Add support for the new enum, remove references to DWARF, and add support for checking whether the expression could be evaluated statically. IRForTarget.[h,cpp] Add support for the new enum, and add utility functions to support the interpreter. IRToDWARF.cpp Removed CommandObjectExpression.cpp Remove references to the obsolete -i option. Process.cpp Modify calls to ClangUserExpression::Evaluate to pass the correct enum (for dlopen/dlclose) SBValue.cpp Add support for the new enum. SBFrame.cpp Add support for he new enum. BreakpointOptions.cpp Add support for the new enum. llvm-svn: 139772
-
Johnny Chen authored
the passed in (MachException::Data &)exc first before possible reassignment of the member m_stop_exception with exc. This allows lldb to stop at the watchpoint of a simple test program. llvm-svn: 139767
-
Jim Ingham authored
Take out all the separate places in Attach where we were getting the target architecture, and move that but of functionality into CompleteAttach. llvm-svn: 139766
-
Jim Ingham authored
Change the "attach" command to always wait synchronously for the target to stop. It's not very useful to return the prompt in mid-attach, and it makes reporting the result of the attach hard to do. llvm-svn: 139764
-
Jim Ingham authored
Fix ArchSpec::operator== to take the Triple into account as well as the Core. Also make the constructors explicit. llvm-svn: 139762
-
Jim Ingham authored
Fix ArchSpec::operator== to take the Triple into account as well as the Core. Also make the constructors explicit. llvm-svn: 139761
-
Jason Molenda authored
Have the FuncUnwinder object request & provide an architecture-defined UnwindPlan for unwinding from the first instruction of an otherwise unknown function call (GetUnwindPlanArchitectureDefaultAtFunctionEntry()). Update RegisterContextLLDB::GetFullUnwindPlanForFrame() to detect the case of a frame 0 at address 0x0 which indicates that we jumped through a NULL function pointer. Use the ABI's FunctionEntryUnwindPlan to find the caller frame. These changes make it so lldb can identify the calling frame correctly in code like int main () { void (*f)(void) = 0; f(); } llvm-svn: 139760
-
Greg Clayton authored
llvm-svn: 139759
-
Johnny Chen authored
llvm-svn: 139746
-
- Sep 14, 2011
-
-
Johnny Chen authored
Plus simplify WatchpointLocation::Dump() output. llvm-svn: 139724
-
Jim Ingham authored
to by the time we get to the AttachCompletionHandler, do it before completing the attach. llvm-svn: 139679
-
Johnny Chen authored
llvm-svn: 139673
-
Johnny Chen authored
Update I386 DNB impl to fix the same errors as DNBArchImplX86_64: ('==' instead of '=') and (by value instead of by reference). llvm-svn: 139667
-
Johnny Chen authored
o WatchpointLocationList: Add a GetListMutex() method. o WatchpointLocation: Fix Dump() method where there was an extra % in the format string. o Target.cpp: Add implementation to CreateWatchpointLocation() to create and enable a watchpoint. o DNBArchImplX86_64.cpp: Fix bugs in SetWatchpoint()/ClearWatchpoint() where '==' was used, instead of '=', to assign/reset the data break address to a debug register. Also fix bugs where a by reference debug_state should have been used, not by value. llvm-svn: 139666
-
Jim Ingham authored
allow attaching from the command line. llvm-svn: 139665
-
- Sep 13, 2011
-
-
Johnny Chen authored
Get the address and the size of the variable for passing to the Target::CreateWatchpointLocation() method. llvm-svn: 139614
-
Greg Clayton authored
llvm-svn: 139582
-
Johnny Chen authored
llvm-svn: 139569
-
Johnny Chen authored
llvm-svn: 139568
-
Jason Molenda authored
valid threads - can happen if attaching to a process fails in a certain way. llvm-svn: 139567
-
Jason Molenda authored
(running under any uid) if lldb is being run as root. It might be better to handle this up at the ProcessInstanceInfoMatch class with its m_match_all_users ivar instead of down here... llvm-svn: 139566
-
Jim Ingham authored
SBSourceManager now gets the real source manager either from the Debugger or Target. Also, move the SourceManager file cache into the debugger so it can be shared amongst the targets. llvm-svn: 139564
-
Johnny Chen authored
from CommandObjectFrame::Execute(). llvm-svn: 139561
-
Johnny Chen authored
o Rename from OptionGroupWatchpoint::WatchMode to OptionGroupWatchpoint::WatchType, and CommandArgumentType::eArgTypeWatchMode to CommandArgumentType::eArgTypeWatchType. Update the sources to reflect the change. o Add a CreateWatchpointLocation() method to Target class, which is currently not implmeneted (returns an empty WatchpointLocationSP object). Add logic to CommandObjectFrame::Execute() to exercise the added API for creating a watchpoint location. llvm-svn: 139560
-
Greg Clayton authored
Address ranges are now split up into two different tables: - one in DWARFDebugInfo that is compile unit specific - one in each DWARFCompileUnit that has exact function DIE offsets This helps keep the size of the aranges down since the main table will get uniqued and sorted and have consecutive ranges merged. We then only parse the compile unit one on demand once we have determined that a compile unit contains the address in question. We also now use the .debug_aranges section if there is one instead of always indexing the DWARF manually. NameToDIE now uses a UniqueCStringMap<dw_offset> map instead of a std::map. std::map is very bulky as each node has 3 pointers and the key and value types. This gets our NameToDIE entry down to 12 bytes each instead of 48 which saves us a lot of memory when we have very large DWARF. DWARFDebugAranges now has a smaller footprint for each range it contains to save on memory. llvm-svn: 139557
-
- Sep 12, 2011
-
-
Johnny Chen authored
llvm-svn: 139534
-
Greg Clayton authored
llvm-svn: 139529
-
Johnny Chen authored
to effect an early error return. Plus add logic to 'frame variable' command object to check that when watchpoint option is on, only one variable with exact name (no regex) is specified as the sole command arg. llvm-svn: 139524
-
Greg Clayton authored
llvm-svn: 139490
-
Greg Clayton authored
Added a new log category for DWARF called "aranges" to log the parsing of address ranges. llvm-svn: 139489
-
Greg Clayton authored
and avoid returning a pointer to the current object. In the new "operator bool" implementation, check the filename object first since many times we have FileSpec objects with a filename, yet no directory. llvm-svn: 139488
-
Greg Clayton authored
of how ConstString objects work, and removed the duplicate and out of date comments that were in the cpp file. llvm-svn: 139487
-
- Sep 11, 2011
-
-
Greg Clayton authored
changes that were just submitted. llvm-svn: 139478
-
Greg Clayton authored
more efficiently when it contains a large number of items. Since the map is actually a vector of "const char *" and type T values, it will double in size every time you append to it. The extra added functions allow the collection to be sized to fit the data after all entries have been appended, and lookups by name or by regex have been built in to the class to allow efficient lookup. llvm-svn: 139477
-
Greg Clayton authored
name is "lldb". So currently when you startup any application and you have not specified that you would like to skip loading init files through the API or from "lldb" options, then LLDB will try and load: "~/.lldbinit-%s" where %s the basename of your program "~/.lldbinit" Then LLDB will load any program specified on the command line and then source the "./.llbinit" file for any temporary debug session specific commands. I want this feature because I have thread and frame formats that do ANSI color codes that I only want to load when running in a terminal which is when I am running the "lldb" command line program. llvm-svn: 139476
-
- Sep 10, 2011
-
-
Johnny Chen authored
A little bit of cleanup; set watch_mode to eWatchInvalid at the OptionParsingStarting() lifecycle point. llvm-svn: 139467
-
Johnny Chen authored
llvm-svn: 139452
-
Greg Clayton authored
llvm-svn: 139448
-
Johnny Chen authored
llvm-svn: 139447
-
Johnny Chen authored
with a template function 'arraysize(static_array)', defined in Utils.h. llvm-svn: 139444
-