| #
c9660546 |
| 05-Feb-2012 |
Greg Clayton <[email protected]> |
<rdar://problem/10560053>
Fixed "target modules list" (aliased to "image list") to output more information by default. Modified the "target modules list" to have a few new options:
"--header" or "-
<rdar://problem/10560053>
Fixed "target modules list" (aliased to "image list") to output more information by default. Modified the "target modules list" to have a few new options:
"--header" or "-h" => show the image header address "--offset" or "-o" => show the image header address offset from the address in the file (the slide applied to the shared library)
Removed the "--symfile-basename" or "-S" option, and repurposed it to "--symfile-unique" "-S" which will show the symbol file if it differs from the executable file.
ObjectFile's can now be loaded from memory for cases where we don't have the files cached locally in an SDK or net mounted root. ObjectFileMachO can now read mach files from memory.
Moved the section data reading code into the ObjectFile so that the object file can get the section data from Process memory if the file is only in memory.
lldb_private::Module can now load its object file in a target with a rigid slide (very common operation for most dynamic linkers) by using:
bool Module::SetLoadAddress (Target &target, lldb::addr_t offset, bool &changed)
lldb::SBModule() now has a new constructor in the public interface:
SBModule::SBModule (lldb::SBProcess &process, lldb::addr_t header_addr);
This will find an appropriate ObjectFile plug-in to load an image from memory where the object file header is at "header_addr".
llvm-svn: 149804
show more ...
|
| #
acdbe816 |
| 30-Jan-2012 |
Greg Clayton <[email protected]> |
lldb::SBTarget and lldb::SBProcess are now thread hardened. They both still contain shared pointers to the lldb_private::Target and lldb_private::Process objects respectively as we won't want the tar
lldb::SBTarget and lldb::SBProcess are now thread hardened. They both still contain shared pointers to the lldb_private::Target and lldb_private::Process objects respectively as we won't want the target or process just going away.
Also cleaned up the lldb::SBModule to remove dangerous pointer accessors.
For any code the public API files, we should always be grabbing shared pointers to any objects for the current class, and any other classes prior to running code with them.
llvm-svn: 149238
show more ...
|
| #
b9556acc |
| 30-Jan-2012 |
Greg Clayton <[email protected]> |
SBFrame is now threadsafe using some extra tricks. One issue is that stack frames might go away (the object itself, not the actual logical frame) when we are single stepping due to the way we current
SBFrame is now threadsafe using some extra tricks. One issue is that stack frames might go away (the object itself, not the actual logical frame) when we are single stepping due to the way we currently sometimes end up flushing frames when stepping in/out/over. They later will come back to life represented by another object yet they have the same StackID. Now when you get a lldb::SBFrame object, it will track the frame it is initialized with until the thread goes away or the StackID no longer exists in the stack for the thread it was created on. It uses a weak_ptr to both the frame and thread and also stores the StackID. These three items allow us to determine when the stack frame object has gone away (the weak_ptr will be NULL) and allows us to find the correct frame again. In our test suite we had such cases where we were just getting lucky when something like this happened:
1 - stop at breakpoint 2 - get first frame in thread where we stopped 3 - run an expression that causes the program to JIT and run code 4 - run more expressions on the frame from step 2 which was very very luckily still around inside a shared pointer, yet, not part of the current thread (a new stack frame object had appeared with the same stack ID and depth). We now avoid all such issues and properly keep up to date, or we start returning errors when the frame doesn't exist and always responds with invalid answers.
Also fixed the UserSettingsController (not going to rewrite this just yet) so that it doesn't crash on shutdown. Using weak_ptr's came in real handy to track when the master controller has already gone away and this allowed me to pull out the previous NotifyOwnerIsShuttingDown() patch as it is no longer needed.
llvm-svn: 149231
show more ...
|
| #
13d1950a |
| 29-Jan-2012 |
Greg Clayton <[email protected]> |
Added the ability to get the target triple, byte order and address byte size from the SBTarget and SBModule interfaces. Also added many python properties for easier access to many things from many SB
Added the ability to get the target triple, byte order and address byte size from the SBTarget and SBModule interfaces. Also added many python properties for easier access to many things from many SB objects.
llvm-svn: 149191
show more ...
|
| #
5d3bca4e |
| 19-Dec-2011 |
Jim Ingham <[email protected]> |
Add needed Clear methods. <rdar://problem/10596340>
llvm-svn: 146902
|
| #
4efffd9a |
| 19-Dec-2011 |
Johnny Chen <[email protected]> |
Work in progress for:
rdar://problem/10577182 Audit lldb API impl for places where we need to perform a NULL check
Add NULL checks for SBModule and SBSection APIs.
llvm-svn: 146899
|
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4 |
|
| #
da7bc7d0 |
| 13-Nov-2011 |
Greg Clayton <[email protected]> |
<rdar://problem/10126482>
Fixed an issues with the SBType and SBTypeMember classes: - Fixed SBType to be able to dump itself from python - Fixed SBType::GetNumberOfFields() to return the correct val
<rdar://problem/10126482>
Fixed an issues with the SBType and SBTypeMember classes: - Fixed SBType to be able to dump itself from python - Fixed SBType::GetNumberOfFields() to return the correct value for objective C interfaces - Fixed SBTypeMember to be able to dump itself from python - Fixed the SBTypeMember ability to get a field offset in bytes (the value being returned was wrong) - Added the SBTypeMember ability to get a field offset in bits
Cleaned up a lot of the Stream usage in the SB API files.
llvm-svn: 144493
show more ...
|
|
Revision tags: llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1 |
|
| #
b6d70ebc |
| 12-Oct-2011 |
Sean Callanan <[email protected]> |
Added ClangNamespaceDecl * parameters to several core Module functions that the expression parser will soon be using.
llvm-svn: 141766
|
| #
cac9c5f9 |
| 24-Sep-2011 |
Greg Clayton <[email protected]> |
Added to the public API to allow symbolication: - New SBSection objects that are object file sections which can be accessed through the SBModule classes. You can get the number of sections, get a
Added to the public API to allow symbolication: - New SBSection objects that are object file sections which can be accessed through the SBModule classes. You can get the number of sections, get a section at index, and find a section by name. - SBSections can contain subsections (first find "__TEXT" on darwin, then us the resulting SBSection to find "__text" sub section). - Set load addresses for a SBSection in the SBTarget interface - Set the load addresses of all SBSection in a SBModule in the SBTarget interface - Add a new module the an existing target in the SBTarget interface - Get a SBSection from a SBAddress object
This should get us a lot closer to being able to symbolicate using LLDB through the public API.
llvm-svn: 140437
show more ...
|
| #
3418c857 |
| 10-Aug-2011 |
Greg Clayton <[email protected]> |
While tracking down memory consumption issue a few things were needed: the ability to dump more information about modules in "target modules list". We can now dump the shared pointer reference count
While tracking down memory consumption issue a few things were needed: the ability to dump more information about modules in "target modules list". We can now dump the shared pointer reference count for modules, the pointer to the module itself (in case performance tools can help track down who has references to said pointer), and the modification time.
Added "target delete [target-idx ...]" to be able to delete targets when they are no longer needed. This will help track down memory usage issues and help to resolve when module ref counts keep getting incremented. If the command gets no arguments, the currently selected target will be deleted. If any arguments are given, they must all be valid target indexes (use the "target list" command to get the current target indexes).
Took care of a bunch of "no newline at end of file" warnings.
TimeValue objects can now dump their time to a lldb_private::Stream object.
Modified the "target modules list --global" command to not error out if there are no targets since it doesn't require a target.
Fixed an issue in the MacOSX DYLD dynamic loader plug-in where if a shared library was updated on disk, we would keep using the older one, even if it was updated.
Don't allow the ModuleList::GetSharedModule(...) to return an empty module. Previously we could specify a valid path on disc to a module, and specify an architecture that wasn't contained in that module and get a shared pointer to a module that wouldn't be able to return an object file or a symbol file. We now make sure an object file can be extracted prior to adding the shared pointer to the module to get added to the shared list.
llvm-svn: 137196
show more ...
|
| #
fe42ac4d |
| 03-Aug-2011 |
Greg Clayton <[email protected]> |
Cleaned up the SBType.h file to not include internal headers and reorganized the SBType implementation classes.
Fixed LLDB core and the test suite to not use deprecated SBValue APIs.
Added a few ne
Cleaned up the SBType.h file to not include internal headers and reorganized the SBType implementation classes.
Fixed LLDB core and the test suite to not use deprecated SBValue APIs.
Added a few new APIs to SBValue:
int64_t SBValue::GetValueAsSigned(int64_t fail_value=0);
uint64_t SBValue::GetValueAsUnsigned(uint64_t fail_value=0)
llvm-svn: 136829
show more ...
|
| #
6f3533fb |
| 29-Jul-2011 |
Enrico Granata <[email protected]> |
Public API changes: - Completely new implementation of SBType - Various enhancements in several other classes Python synthetic children providers for std::vector<T>, std::list<T> and std::map<K,V>:
Public API changes: - Completely new implementation of SBType - Various enhancements in several other classes Python synthetic children providers for std::vector<T>, std::list<T> and std::map<K,V>: - these return the actual elements into the container as the children of the container - basic template name parsing that works (hopefully) on both Clang and GCC - find them in examples/synthetic and in the test suite in functionalities/data-formatter/data-formatter-python-synth New summary string token ${svar : - the syntax is just the same as in ${var but this new token lets you read the values coming from the synthetic children provider instead of the actual children - Python providers above provide a synthetic child len that returns the number of elements into the container Full bug fix for the issue in which getting byte size for a non-complete type would crash LLDB Several other fixes, including: - inverted the order of arguments in the ClangASTType constructor - EvaluationPoint now only returns SharedPointer's to Target and Process - the help text for several type subcommands now correctly indicates argument-less options as such
llvm-svn: 136504
show more ...
|
| #
00e6fbfe |
| 22-Jul-2011 |
Greg Clayton <[email protected]> |
Make the SBAddress class easier to use when using the public API.
SBTarget changes include changing:
bool SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr, lldb::S
Make the SBAddress class easier to use when using the public API.
SBTarget changes include changing:
bool SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr, lldb::SBAddress& addr);
to be:
lldb::SBAddress SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr);
SBAddress can how contruct itself using a load address and a target which can be used to resolve the address:
SBAddress (lldb::addr_t load_addr, lldb::SBTarget &target);
This will actually just call the new SetLoadAddress accessor:
void SetLoadAddress (lldb::addr_t load_addr, lldb::SBTarget &target);
This function will always succeed in making a SBAddress object that can be used in API calls (even if "target" isn't valid). If "target" is valid and there are sections currently loaded, then it will resolve the address to a section offset address if it can. Else an address with a NULL section and an offset that is the "load_addr" that was passed in. We do this because a load address might be from the heap or stack.
llvm-svn: 135770
show more ...
|
| #
dea8cb4f |
| 29-Jun-2011 |
Greg Clayton <[email protected]> |
Added support for finding and global variables in the SBTarget and SBModule level in the public API.
Also modified the ValueObject values to be able to display global variables without having a val
Added support for finding and global variables in the SBTarget and SBModule level in the public API.
Also modified the ValueObject values to be able to display global variables without having a valid running process. The globals will read themselves from the object file section data if there is no process, and from the process if there is one.
Also fixed an issue where modifications for dynamic types could cause child values of ValueObjects to not show up if the value was unable to evaluate itself (children of NULL pointer objects).
llvm-svn: 134102
show more ...
|
| #
a25bf6ef |
| 28-Jun-2011 |
Johnny Chen <[email protected]> |
Add fuzz calls for SBModule and SBProcess.
llvm-svn: 134037
|
| #
fe356d35 |
| 21-Jun-2011 |
Greg Clayton <[email protected]> |
Added the ability to find functions from either a SBModule (find functions only in a specific module), or in a SBTarget (all modules for a target).
llvm-svn: 133498
|
| #
2289fa48 |
| 30-Apr-2011 |
Greg Clayton <[email protected]> |
Added the ability to set the Platform path for a module through the SBModule interface.
Added a quick way to set the platform though the SBDebugger interface. I will actually an a SBPlatform support
Added the ability to set the Platform path for a module through the SBModule interface.
Added a quick way to set the platform though the SBDebugger interface. I will actually an a SBPlatform support soon, but for now this will do.
ConnectionFileDescriptor can be passed a url formatted as: "fd://<fd>" where <fd> is a file descriptor in the current process. This is handy if you have services, deamons, or other tools that can spawn processes and give you a file handle.
llvm-svn: 130565
show more ...
|
|
Revision tags: llvmorg-2.9.0 |
|
| #
df2963ed |
| 01-Apr-2011 |
Johnny Chen <[email protected]> |
Add TestSymbolAPI.py to test the newly added SBSymbol and SBAddress APIs:
lldb::SymbolType SBSymbol::GetType();
lldb::SectionType SBAddress::GetSectionType (); lldb::SBModule SBAddress::GetMo
Add TestSymbolAPI.py to test the newly added SBSymbol and SBAddress APIs:
lldb::SymbolType SBSymbol::GetType();
lldb::SectionType SBAddress::GetSectionType (); lldb::SBModule SBAddress::GetModule ();
Also add an lldb::SBModule::GetUUIDString() API which is easier for Python to work with in the test script.
llvm-svn: 128695
show more ...
|
|
Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1 |
|
| #
bbdabce2 |
| 07-Dec-2010 |
Greg Clayton <[email protected]> |
Added symbol table access through the module for now. We might need to expose a SBSymtab class, but for now, we expose the symbols through the module.
llvm-svn: 121112
|
| #
2d4edfbc |
| 06-Nov-2010 |
Greg Clayton <[email protected]> |
Modified all logging calls to hand out shared pointers to make sure we don't crash if we disable logging when some code already has a copy of the logger. Prior to this fix, logs were handed out as po
Modified all logging calls to hand out shared pointers to make sure we don't crash if we disable logging when some code already has a copy of the logger. Prior to this fix, logs were handed out as pointers and if they were held onto while a log got disabled, then it could cause a crash. Now all logs are handed out as shared pointers so this problem shouldn't happen anymore. We are also using our new shared pointers that put the shared pointer count and the object into the same allocation for a tad better performance.
llvm-svn: 118319
show more ...
|
| #
efabb123 |
| 05-Nov-2010 |
Greg Clayton <[email protected]> |
Added copy constructors and assignment operators to all lldb::SB* classes so we don't end up with weak exports with some compilers.
llvm-svn: 118312
|
| #
38adbbb8 |
| 31-Oct-2010 |
Greg Clayton <[email protected]> |
Fixed an include so case sensitive builders can build.
llvm-svn: 117864
|
| #
cfd1aced |
| 31-Oct-2010 |
Greg Clayton <[email protected]> |
Cleaned up the API logging a lot more to reduce redundant information and keep the file size a bit smaller.
Exposed SBValue::GetExpressionPath() so SBValue users can get an expression path for thei
Cleaned up the API logging a lot more to reduce redundant information and keep the file size a bit smaller.
Exposed SBValue::GetExpressionPath() so SBValue users can get an expression path for their values.
llvm-svn: 117851
show more ...
|
| #
4838131b |
| 30-Oct-2010 |
Greg Clayton <[email protected]> |
Improved API logging.
llvm-svn: 117772
|
| #
750cd175 |
| 26-Oct-2010 |
Caroline Tice <[email protected]> |
Clean up the API logging code: - Try to reduce logging to one line per function call instead of tw - Put all arguments & their values into log for calls - Add 'this' parameter infor
Clean up the API logging code: - Try to reduce logging to one line per function call instead of tw - Put all arguments & their values into log for calls - Add 'this' parameter information to function call logging, making it show the appropriate internal pointer (this.obj, this.sp, this.ap...) - Clean up some return values - Remove logging of constructors that construct empty objects - Change '==>' to '=>' for showing result values... - Fix various minor bugs - Add some protected 'get' functions to help getting the internal pointers for the 'this' arguments...
llvm-svn: 117417
show more ...
|