|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3 |
|
| #
d5944cd1 |
| 06-Dec-2013 |
Greg Clayton <[email protected]> |
For logical backtrace work, lldb needs to track Module unloads etc & symoblicate an address based on a point in time
<rdar://problem/15314403>
This patch adds a new lldb_private::SectionLoadHistor
For logical backtrace work, lldb needs to track Module unloads etc & symoblicate an address based on a point in time
<rdar://problem/15314403>
This patch adds a new lldb_private::SectionLoadHistory class that tracks what shared libraries were loaded given a process stop ID. This allows us to keep a history of the sections that were loaded for a time T. Many items in history objects will rely upon the process stop ID in the future.
llvm-svn: 196557
show more ...
|
|
Revision tags: llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
| #
5c19eac1 |
| 06-Nov-2013 |
Sean Callanan <[email protected]> |
Added Iterable, a class that vends standard C++ iterators for LLDB's container data structures. Iterable abstracts over the backing data structure, ignoring keys for maps for example. It also provid
Added Iterable, a class that vends standard C++ iterators for LLDB's container data structures. Iterable abstracts over the backing data structure, ignoring keys for maps for example. It also provides locking as a service so that the code
for (ThreadSP thread_sp : process->Threads()) { // ... use thread_sp }
takes the appropriate locks once, without having to do anything else.
The salient advantages of this system are:
- Much simpler and idiomatic loop code - Lock once instead of each time an element is fetched - Less boilerplate to produce the iterators
The intent is that Iterable will replace Get...AtIndex in most places, and that ForEach(), which solves the same problem in a less-idiomatic way, be phased out in favor of this approach.
I've added Iterables to ThreadList, TypeList, and Process (which is really just forwarding to ThreadList).
llvm-svn: 194159
show more ...
|
| #
b57e4a1b |
| 04-Nov-2013 |
Jason Molenda <[email protected]> |
Roll back the changes I made in r193907 which created a new Frame pure virtual base class and made StackFrame a subclass of that. As I started to build on top of that arrangement today, I found that
Roll back the changes I made in r193907 which created a new Frame pure virtual base class and made StackFrame a subclass of that. As I started to build on top of that arrangement today, I found that it wasn't working out like I intended. Instead I'll try sticking with the single StackFrame class -- there's too much code duplication to make a more complicated class hierarchy sensible I think.
llvm-svn: 193983
show more ...
|
| #
f23bf743 |
| 02-Nov-2013 |
Jason Molenda <[email protected]> |
Add a new base class, Frame. It is a pure virtual function which defines a protocol that all subclasses will implement. StackFrame is currently the only subclass and the methods that Frame vends ar
Add a new base class, Frame. It is a pure virtual function which defines a protocol that all subclasses will implement. StackFrame is currently the only subclass and the methods that Frame vends are nearly identical to StackFrame's old methods.
Update all callers to use Frame*/Frame& instead of pointers to StackFrames.
This is almost entirely a mechanical change that touches a lot of the code base so I'm committing it alone. No new functionality is added with this patch, no new subclasses of Frame exist yet.
I'll probably need to tweak some of the separation, possibly moving some of StackFrame's methods up in to Frame, but this is a good starting point.
<rdar://problem/15314068>
llvm-svn: 193907
show more ...
|
| #
4d93b8cd |
| 30-Sep-2013 |
Enrico Granata <[email protected]> |
<rdar://problem/14393032>
DumpValueObject() 2.0
This checkin restores pre-Xcode5 functionality to the "po" (expr -O) command: - expr now has a new --description-verbosity (-v) argument, which takes
<rdar://problem/14393032>
DumpValueObject() 2.0
This checkin restores pre-Xcode5 functionality to the "po" (expr -O) command: - expr now has a new --description-verbosity (-v) argument, which takes either compact or full as a value (-v is the same as -vfull) When the full mode is on, "po" will show the extended output with type name, persistent variable name and value, as in (lldb) expr -O -v -- foo (id) $0 = 0x000000010010baf0 { 1 = 2; 2 = 3; }
When -v is omitted, or -vcompact is passed, the Xcode5-style output will be shown, as in (lldb) expr -O -- foo { 1 = 2; 2 = 3; }
- for a non-ObjectiveC object, LLDB will still try to retrieve a summary and/or value to display (lldb) po 5 5 -v also works in this mode (lldb) expr -O -vfull -- 5 (int) $4 = 5
On top of that, this is a major refactoring of the ValueObject printing code. The functionality is now factored into a ValueObjectPrinter class for easier maintenance in the future DumpValueObject() was turned into an instance method ValueObject::Dump() which simply calls through to the printer code, Dump_Impl has been removed
Test case to follow
llvm-svn: 191694
show more ...
|
| #
b019cd92 |
| 11-Sep-2013 |
Jason Molenda <[email protected]> |
When target module add/SBTarget::AddModule()'ing, if an architecture isn't specifically requested, use the Target's architecture to pick the correct slice of a universal file. <rdar://problem/1481386
When target module add/SBTarget::AddModule()'ing, if an architecture isn't specifically requested, use the Target's architecture to pick the correct slice of a universal file. <rdar://problem/14813869>
llvm-svn: 190550
show more ...
|
| #
e2607b50 |
| 05-Sep-2013 |
Virgile Bello <[email protected]> |
Add OptionParser.h
llvm-svn: 190063
|
| #
e0f8f574 |
| 26-Aug-2013 |
Daniel Malea <[email protected]> |
merge lldb-platform-work branch (and assorted fixes) into trunk
Summary: This merge brings in the improved 'platform' command that knows how to interface with remote machines; that is, q
merge lldb-platform-work branch (and assorted fixes) into trunk
Summary: This merge brings in the improved 'platform' command that knows how to interface with remote machines; that is, query OS/kernel information, push and pull files, run shell commands, etc... and implementation for the new communication packets that back that interface, at least on Darwin based operating systems via the POSIXPlatform class. Linux support is coming soon.
Verified the test suite runs cleanly on Linux (x86_64), build OK on Mac OS X Mountain Lion.
Additional improvements (not in the source SVN branch 'lldb-platform-work'): - cmake build scripts for lldb-platform - cleanup test suite - documentation stub for qPlatform_RunCommand - use log class instead of printf() directly - reverted work-in-progress-looking changes from test/types/TestAbstract.py that work towards running the test suite remotely. - add new logging category 'platform'
Reviewers: Matt Kopec, Greg Clayton
Review: http://llvm-reviews.chandlerc.com/D1493
llvm-svn: 189295
show more ...
|
| #
b1e15925 |
| 22-Aug-2013 |
Michael Sartain <[email protected]> |
add error checking and messages to 'target modules show-unwind' command
llvm-svn: 189058
|
| #
2540a8a7 |
| 12-Jul-2013 |
Greg Clayton <[email protected]> |
Fixed GetModuleSpecifications() to work better overall: - MachO files now correctly extract the UUID all the time - More file size and offset verification done for universal mach-o files to watch for
Fixed GetModuleSpecifications() to work better overall: - MachO files now correctly extract the UUID all the time - More file size and offset verification done for universal mach-o files to watch for truncated files - ObjectContainerBSDArchive now supports enumerating all objects in BSD archives (.a files) - lldb_private::Module() can not be properly constructed using a ModuleSpec for a .o file in a .a file - The BSD archive plug-in shares its cache for GetModuleSpecifications() and the create callback - Improved printing for ModuleSpec objects
llvm-svn: 186211
show more ...
|
| #
bf22b96d |
| 11-Jul-2013 |
Jim Ingham <[email protected]> |
Add a -remote-file option to “target create” to specify the location of the executable on a remote system (if debugging remotely using debugserver on the target system.) This gets us closer to being
Add a -remote-file option to “target create” to specify the location of the executable on a remote system (if debugging remotely using debugserver on the target system.) This gets us closer to being able to set up a remote debugging session from the lldb command line.
llvm-svn: 186050
show more ...
|
| #
3046e668 |
| 10-Jul-2013 |
Greg Clayton <[email protected]> |
Cleanup on the unified section list changes. Main changes are: - ObjectFile::GetSymtab() and ObjectFile::ClearSymtab() no longer takes any flags - Module coordinates with the object files and contain
Cleanup on the unified section list changes. Main changes are: - ObjectFile::GetSymtab() and ObjectFile::ClearSymtab() no longer takes any flags - Module coordinates with the object files and contain a unified section list so that object file and symbol file can share sections when they need to, yet contain their own sections.
Other cleanups: - Fixed Symbol::GetByteSize() to not have the symbol table compute the byte sizes on the fly - Modified the ObjectFileMachO class to compute symbol sizes all at once efficiently - Modified the Symtab class to store a file address lookup table for more efficient lookups - Removed Section::Finalize() and SectionList::Finalize() as they did nothing - Improved performance of the detection of symbol files that have debug maps by excluding stripped files and core files, debug files, object files and stubs - Added the ability to tell if an ObjectFile has been stripped with ObjectFile::IsStripped() (used this for the above performance improvement)
llvm-svn: 185990
show more ...
|
|
Revision tags: llvmorg-3.3.1-rc1 |
|
| #
a7499c98 |
| 01-Jul-2013 |
Michael Sartain <[email protected]> |
Split symbol support for ELF and Linux.
llvm-svn: 185366
|
| #
cc0273d7 |
| 18-Jun-2013 |
Jim Ingham <[email protected]> |
Fix the help for "image dump line-table" - its arguments are compilation units not modules.
llvm-svn: 184226
|
|
Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2 |
|
| #
9730339b |
| 21-May-2013 |
Enrico Granata <[email protected]> |
Improving the previous checkin about target.load-script-from-symbol-file
There are two settings: target.load-script-from-symbol-file is a boolean that says load or no load (default: false) target.wa
Improving the previous checkin about target.load-script-from-symbol-file
There are two settings: target.load-script-from-symbol-file is a boolean that says load or no load (default: false) target.warn-on-script-from-symbol-file is also a boolean, it says whether you want to be warned when a script file is not loaded due to security (default: true)
the auto loading on change for target.load-script-from-symbol-file is preserved
llvm-svn: 182336
show more ...
|
| #
caa84cbc |
| 20-May-2013 |
Enrico Granata <[email protected]> |
Forgot to check for empty error strings in the previous checkin
llvm-svn: 182325
|
| #
6ecb232b |
| 18-May-2013 |
Greg Clayton <[email protected]> |
<rdar://problem/11398407>
Name matching was working inconsistently across many places in LLDB. Anyone doing name lookups where you want to look for all types of names should used "eFunctionNameTypeA
<rdar://problem/11398407>
Name matching was working inconsistently across many places in LLDB. Anyone doing name lookups where you want to look for all types of names should used "eFunctionNameTypeAuto" as the sole name type mask. This will ensure that we get consistent "lookup function by name" results. We had many function calls using as mask like "eFunctionNameTypeBase | eFunctionNameTypeFull | eFunctionNameTypeMethod | eFunctionNameTypeSelector". This was due to the function lookup by name evolving over time, but as it stands today, use eFunctionNameTypeAuto when you want general name lookups. Either ModuleList::FindFunctions() or Module::FindFunctions() will figure out the right kinds of names to lookup and remove the "eFunctionNameTypeAuto" and replace it with the exact subset of what the name can be.
This checkin also changes eFunctionNameTypeAny over to use eFunctionNameTypeAuto to reflect this.
llvm-svn: 182179
show more ...
|
| #
9aae0a13 |
| 15-May-2013 |
Greg Clayton <[email protected]> |
<rdar://problem/13128331>
Fixed "target symbols add" to correctly extract all module specifications from a dSYM file that is supplied and match the symbol file to a current target module using the U
<rdar://problem/13128331>
Fixed "target symbols add" to correctly extract all module specifications from a dSYM file that is supplied and match the symbol file to a current target module using the UUID values if they are available.
This fixes the case where you add a dSYM file (like "foo.dSYM") which is for a renamed executable (like "bar"). In our case it was "mach_kernel.dSYM" which didn't match "mach_kernel.sys".
llvm-svn: 181916
show more ...
|
| #
2ea43cdc |
| 13-May-2013 |
Enrico Granata <[email protected]> |
<rdar://problem/13183720>
Provide a mechanism through which users can disable loading the Python scripts from dSYM files This relies on a target setting: target.load-script-from-symbol-file which de
<rdar://problem/13183720>
Provide a mechanism through which users can disable loading the Python scripts from dSYM files This relies on a target setting: target.load-script-from-symbol-file which defaults to false ("do NOT load the script") You need to set it to true before creating your target (or in your lldbinit file if you constantly rely on this feature) to allow the scripts to load
llvm-svn: 181709
show more ...
|
| #
57abc5d6 |
| 10-May-2013 |
Greg Clayton <[email protected]> |
<rdar://problem/13854277> <rdar://problem/13594769>
Main changes in this patch include: - cleanup plug-in interface and use ConstStrings for plug-in names - Modfiied the BSD Archive plug-in to be ab
<rdar://problem/13854277> <rdar://problem/13594769>
Main changes in this patch include: - cleanup plug-in interface and use ConstStrings for plug-in names - Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp - Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging
The plug-in interface changes:
Modified the lldb_private::PluginInterface class that all plug-ins inherit from:
Changed:
virtual const char * GetPluginName() = 0;
To:
virtual ConstString GetPluginName() = 0;
Removed:
virtual const char * GetShortPluginName() = 0;
- Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names. - Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc.
llvm-svn: 181631
show more ...
|
|
Revision tags: llvmorg-3.3.0-rc1 |
|
| #
db7d11c7 |
| 06-May-2013 |
Jason Molenda <[email protected]> |
A few small fixes to make things like image list not print "//mach_kernel" if you are debugging an executable in the top level directory.
llvm-svn: 181190
|
| #
c16b4af0 |
| 03-May-2013 |
Jason Molenda <[email protected]> |
Remove the UUID::GetAsCString() method which required a buffer to save the UUID string in; added UUID::GetAsString() which returns the uuid string in a std::string. Updated callers to use the new m
Remove the UUID::GetAsCString() method which required a buffer to save the UUID string in; added UUID::GetAsString() which returns the uuid string in a std::string. Updated callers to use the new method.
llvm-svn: 181078
show more ...
|
| #
b5ad4ec7 |
| 29-Apr-2013 |
Greg Clayton <[email protected]> |
Cleanup logging to use the new "std::string FileSpec::GetPath()" function. Also added a similar function for modules:
std::string Module::GetSpecificationDescription () const;
This returns the modu
Cleanup logging to use the new "std::string FileSpec::GetPath()" function. Also added a similar function for modules:
std::string Module::GetSpecificationDescription () const;
This returns the module as "/usr/lib/libfoo.dylib" for normal files (calls "std::string FileSpec::GetPath()" on m_file) but it also might include the object name in case the module is for a .o file in a BSD archive ("/usr/lib/libfoo.a(bar.o)"). Cleaned up necessary logging code to use it.
llvm-svn: 180717
show more ...
|
| #
535ab860 |
| 23-Apr-2013 |
Jason Molenda <[email protected]> |
Add a new -a / --address argument to image show-unwind to get the unwind instructions for a function/symbol which contains that address.
Update the unwind_diagnose.py script to use this instead of d
Add a new -a / --address argument to image show-unwind to get the unwind instructions for a function/symbol which contains that address.
Update the unwind_diagnose.py script to use this instead of doing image show-unwind by name to avoid cases where there are multiple name definitions.
llvm-svn: 180079
show more ...
|
| #
7b0992d9 |
| 18-Apr-2013 |
Greg Clayton <[email protected]> |
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11.
llvm-svn: 179805
|