- Aug 29, 2012
-
-
rdar://problem/11757916Greg Clayton authored
Make breakpoint setting by file and line much more efficient by only looking for inlined breakpoint locations if we are setting a breakpoint in anything but a source implementation file. Implementing this complex for a many reasons. Turns out that parsing compile units lazily had some issues with respect to how we need to do things with DWARF in .o files. So the fixes in the checkin for this makes these changes: - Add a new setting called "target.inline-breakpoint-strategy" which can be set to "never", "always", or "headers". "never" will never try and set any inlined breakpoints (fastest). "always" always looks for inlined breakpoint locations (slowest, but most accurate). "headers", which is the default setting, will only look for inlined breakpoint locations if the breakpoint is set in what are consudered to be header files, which is realy defined as "not in an implementation source file". - modify the breakpoint setting by file and line to check the current "target.inline-breakpoint-strategy" setting and act accordingly - Modify compile units to be able to get their language and other info lazily. This allows us to create compile units from the debug map and not have to fill all of the details in, and then lazily discover this information as we go on debuggging. This is needed to avoid parsing all .o files when setting breakpoints in implementation only files (no inlines). Otherwise we would need to parse the .o file, the object file (mach-o in our case) and the symbol file (DWARF in the object file) just to see what the compile unit was. - modify the "SymbolFileDWARFDebugMap" to subclass lldb_private::Module so that the virtual "GetObjectFile()" and "GetSymbolVendor()" functions can be intercepted when the .o file contenst are later lazilly needed. Prior to this fix, when we first instantiated the "SymbolFileDWARFDebugMap" class, we would also make modules, object files and symbol files for every .o file in the debug map because we needed to fix up the sections in the .o files with information that is in the executable debug map. Now we lazily do this in the DebugMapModule::GetObjectFile() Cleaned up header includes a bit as well. llvm-svn: 162860
-
Johnny Chen authored
Fix a subtle ArchSpec::cores_match() logic issue which prevents the add-dsym command to add a debug symbol file to one of the target's current modules. llvm-svn: 162802
-
- Aug 28, 2012
-
-
Johnny Chen authored
llvm-svn: 162795
-
Johnny Chen authored
llvm-svn: 162794
-
Filipe Cabecinhas authored
llvm-svn: 162756
-
- Aug 27, 2012
-
-
Enrico Granata authored
llvm-svn: 162680
-
Filipe Cabecinhas authored
llvm-svn: 162679
-
- Aug 24, 2012
-
-
Sean Callanan authored
expression path in a way that can actually be resolved by "expr". llvm-svn: 162574
-
Johnny Chen authored
Add 'attach <pid>|<process-name>' command to lldb, as well as 'detach' which is an alias of 'process detach'. Add two completion test cases for "attach" and "detach". llvm-svn: 162573
-
Greg Clayton authored
llvm-svn: 162542
-
Greg Clayton authored
llvm-svn: 162540
-
Greg Clayton authored
llvm-svn: 162532
-
Greg Clayton authored
Added Args::StringForEncoding(), Args::StringToGenericRegister() and centralized the parsing of the string to encoding and string to generic register. Added code the initialize the register context in the OperatingSystemPython plug-in with the new PythonData classes, and added a test OperatingSystemPython module in lldb/examples/python/operating_system.py that we can use for testing. llvm-svn: 162530
-
Enrico Granata authored
llvm-svn: 162527
-
Enrico Granata authored
Hooking up two more calls for the PythonOSPlugin stuff. The part of code to fetch the data and convert it to C++ objects is still missing, but will come llvm-svn: 162522
-
Enrico Granata authored
llvm-svn: 162519
-
Enrico Granata authored
llvm-svn: 162513
-
Johnny Chen authored
llvm-svn: 162510
-
Greg Clayton authored
llvm-svn: 162504
-
Jim Ingham authored
llvm-svn: 162503
-
Jim Ingham authored
llvm-svn: 162500
-
Johnny Chen authored
Previously we put a WatchpointSentry object within StopInfo.cpp to disable-and-then-enable the watchpoint itself while we are performing the actions associated with the triggered watchpoint, which can cause the user-initiated watchpoint disabling action to be negated. Add a test case to verify that a watchpoint can be disabled during the callbacks. llvm-svn: 162483
-
Enrico Granata authored
A first version of a bunch of classes that wrap commonly used Python objects in a ref-counting and type-safe C++ API llvm-svn: 162481
-
- Aug 23, 2012
-
-
Greg Clayton authored
Added a hollowed out version of an OperatingSystem plugin that will use a class in python to get thread information for threads stored in memory. llvm-svn: 162472
-
Jim Ingham authored
<rdar://problem/12161861> llvm-svn: 162470
-
Johnny Chen authored
Make it so that "b 245" should set a breakpoint at line 245 of the current file. Also add a simple test file. llvm-svn: 162419
-
rdar://problem/12022079Greg Clayton authored
Added a new "interpreter" properties to encapsulate any properties for the command interpreter. Right now this contains only "expand-regex-aliases", so you can now enable (disabled by default) the echoing of the command that a regular expression alias expands to: (lldb) b main Breakpoint created: 1: name = 'main', locations = 1 Note that the expanded regular expression command wasn't shown by default. You can enable it if you want to: (lldb) settings set interpreter.expand-regex-aliases true (lldb) b main breakpoint set --name 'main' Breakpoint created: 1: name = 'main', locations = 1 Also enabled auto completion for enumeration option values (OptionValueEnumeration) and for boolean option values (OptionValueBoolean). Fixed auto completion for settings names when nothing has been type (it should show all settings). llvm-svn: 162418
-
- Aug 22, 2012
-
-
Jim Ingham authored
Rework how the API mutex is acquired when filling out an ExecutionContext from an ExecutionContextRef, particularly in the SBThread & SBFrame interfaces. Instead of filling the whole context & then getting the API mutex, we now get only the target, acquire the API mutex from it, then fill out the rest of the context. This removes a race condition where you get a ThreadSP, then wait on the API mutex while another command Destroy's the Thread you've just gotten. Also fixed the ExecutionContextRef::Get*SP calls so they don't return invalid objects. Also fixed the ExecutionContext::Has*Scope calls so they don't claim to have a scope if the object representing that scope has been destroyed. Also fixed a think-o in Thread::IsValid which was causing it to return the opposite of the desired value. <rdar://problem/11995490> llvm-svn: 162401
-
Jim Ingham authored
llvm-svn: 162400
-
Greg Clayton authored
llvm-svn: 162376
-
Greg Clayton authored
Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation: - no setting auto completion - very manual and error prone way of getting/setting variables - tons of code duplication - useless instance names for processes, threads Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing". llvm-svn: 162366
-
Filipe Cabecinhas authored
llvm-svn: 162357
-
Johnny Chen authored
'add-dsym' (aka 'target symbols add') should display error messages when dsym file is not found or the dsym uuid does not match any existing modules. Add TestAddDsymCommand.py test file. llvm-svn: 162332
-
Johnny Chen authored
Fix test failures in TestWatchpointIter.py due to http://llvm.org/viewvc/llvm-project?rev=162322&view=rev. llvm-svn: 162328
-
Johnny Chen authored
Remove the process->DisableWatchpoint() and EnableWatchpoint() calls since the sentry object is already doing that. llvm-svn: 162323
-
Johnny Chen authored
Watchpoint conditions were hitting watchpoint, smashing LLDB's stack. Make sure watchpoint is properly disabled and subsequently enabled while performing watchpoint actions. llvm-svn: 162322
-
- Aug 21, 2012
-
-
Jim Ingham authored
SBValue::GetTypeName and SBValue::GetByteSize might have to update the dynamic value - which might involve running code. So they need to take the stop lock & target locks. <rdar://problem/12001204> llvm-svn: 162250
-
- Aug 20, 2012
-
-
Filipe Cabecinhas authored
I also added a typemap to make DispatchInput usable in Python. llvm-svn: 162204
-
- Aug 18, 2012
-
-
Jason Molenda authored
when you want to find the caller's saved pc, you look up the return address register and use that. On arm, for instance, this would be the contents of the link register (lr). If the eh_frame CIE defines an RA, record that fact in the UnwindPlan. When we're finding a saved register, if it's the pc, lok for the location of the return address register instead. <rdar://problem/12062310> llvm-svn: 162167
-
Johnny Chen authored
llvm-svn: 162162
-