summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Platform/FreeBSD
Commit message (Collapse)AuthorAgeFilesLines
...
* First cut of PowerPC(64) support in LLDB.Justin Hibbits2014-10-311-0/+7
| | | | | | | | | | | | | | | | | | | | | | | Summary: This adds preliminary support for PowerPC/PowerPC64, for FreeBSD. There are some issues still: * Breakpoints don't work well on powerpc64. * Shared libraries don't yet get loaded for a 32-bit process on powerpc64 host. * Backtraces don't work. This is due to PowerPC ABI using a backchain pointer in memory, instead of a dedicated frame pointer register for the backchain. * Breakpoints on functions without debug info may not work correctly for 32-bit powerpc. Reviewers: emaste, tfiala, jingham, clayborg Reviewed By: clayborg Subscribers: emaste, lldb-commits Differential Revision: http://reviews.llvm.org/D5988 llvm-svn: 220944
* Test suite runs better again after recent fixes that would select a platform ↵Greg Clayton2014-09-192-6/+6
| | | | | | | | | | | | | if a "file a.out" auto selected a different platform than the selected one. Changes include: - fix it so you can select the "host" platform using "platform select host" - change all callbacks that create platforms to returns shared pointers - fix TestImageListMultiArchitecture.py to restore the "host" platform by running "platform select host" - Add a new "PlatformSP Platform::Find(const ConstString &name)" method to get a cached platform - cache platforms that are created and re-use them instead of always creating a new one llvm-svn: 218145
* Move Host::GetArchitecture to HostInfo::GetArchitecture.Zachary Turner2014-08-201-5/+6
| | | | | | | | As a side effect, this patch also eliminates all of the preprocessor conditionals previously used to implement GetArchitecture(). llvm-svn: 216074
* Missed a few places where we need to report unreadable executables.Greg Clayton2014-08-151-4/+11
| | | | | | <rdar://problem/17727734> llvm-svn: 215743
* Test commit: Correct type in two comments.John Wolfe2014-06-191-2/+2
| | | | llvm-svn: 211296
* Fix whitespace / formattingEd Maste2014-05-282-15/+15
| | | | llvm-svn: 209737
* Switch over to use the ArchSpec::GetMachine() instead of ArchSpec::GetCore() ↵Greg Clayton2014-03-201-5/+3
| | | | | | to keep the code more portable as we add new core types to ArchSpec. llvm-svn: 204400
* Change the way the m_trap_handlers Platform base class ivar is initialized;Jason Molenda2014-02-132-1/+9
| | | | | | | | add a new pure virtual CalculateTrapHandlerSymbolNames() that Platform subclasses must implement which fills in the function name list with any trap handlers that are expected on that platform. llvm-svn: 201364
* The Platform base class now maintains a list of trap handlersJason Molenda2014-02-131-1/+3
| | | | | | | | | | | | | | | | aka asynchronous signal handlers, which subclasses should fill in as appropriate. For most Unix user process environments, the one entry in this list is _sigtramp. For bare-board and kernel environments, there will be different sets of trap handlers. The unwinder needs to know when a frame is a trap handler because the rules it enforces for the frame "above" the trap handler is different from most middle-of-the-stack frames. <rdar://problem/15835846> llvm-svn: 201300
* Add support for Haswell on x86_64.Greg Clayton2014-01-221-0/+1
| | | | | | <rdar://problem/15312873> llvm-svn: 199854
* Rename Platform::GetFile (3-arg version) to GetFileWithUUIDSteve Pucci2014-01-172-6/+6
| | | | | | | | | | | This rename was suggested by gclayton as a way to silence gcc warnings; the warning is emitted when there is an overloaded function in a base class (Platform) for which a derived class redefines one of the overloads but not the other (because doing so hides the other overload from users of the derived class). By giving the two methods different names, the situation is avoided. llvm-svn: 199504
* Don't hide errors in PlatformFreeBSD::ResolveExecutableEd Maste2013-08-301-8/+2
| | | | | | | If error is already set then there's no reason to replace it with a generic "<file> does not exist" message. llvm-svn: 189686
* merge lldb-platform-work branch (and assorted fixes) into trunkDaniel Malea2013-08-262-14/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* MingW compilation (windows). Includes various refactoring to improve ↵Virgile Bello2013-08-231-0/+6
| | | | | | portability. llvm-svn: 189107
* Sync FreeBSD files to Linux equivalents, to reduce noise in diffEd Maste2013-06-242-5/+2
| | | | | | | | | - Sort functions in the same order - Match whitespace - Remove commetned out code - Make filename in comments match filename llvm-svn: 184746
* <rdar://problem/13854277>Greg Clayton2013-05-102-28/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <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
* Cleanup logging to use the new "std::string FileSpec::GetPath()" function. ↵Greg Clayton2013-04-291-12/+6
| | | | | | | | | | | 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
* Adding CMake build system to LLDB. Some known issues remain:Daniel Malea2013-02-211-0/+5
| | | | | | | | | | | | | | - generate-vers.pl has to be called by cmake to generate the version number - parallel builds not yet supported; dependency on clang must be explicitly specified Tested on Linux. - Building on Mac will require code-signing logic to be implemented. - Building on Windows will require OS-detection logic and some selective directory inclusion Thanks to Carlo Kok (who originally prepared these CMakefiles for Windows) and Ben Langmuir who ported them to Linux! llvm-svn: 175795
* Removed the == and != operators from ArchSpec, sinceSean Callanan2012-12-131-1/+1
| | | | | | | | | | | | equality can be strict or loose and we want code to explicitly choose one or the other. Also renamed the Compare function to IsEqualTo, to avoid confusion. <rdar://problem/12856749> llvm-svn: 170152
* Fix Linux build warnings due to redefinition of macros:Daniel Malea2012-12-051-0/+2
| | | | | | | | | - add new header lldb-python.h to be included before other system headers - short term fix (eventually python dependencies must be cleaned up) Patch by Matt Kopec! llvm-svn: 169341
* Make sure to check the module is valid after trying to find a shared module.Greg Clayton2012-11-061-1/+1
| | | | llvm-svn: 167471
* <rdar://problem/12462048>Greg Clayton2012-10-181-2/+1
| | | | | | | | | | <rdar://problem/12068650> More fixes to how we handle paths that are used to create a target. This modification centralizes the location where and how what the user specifies gets resolved. Prior to this fix, the TargetList::CreateTarget variants took a FileSpec object which meant everyone had the opportunity to resolve the path their own way. Now both CreateTarget variants take a "const char *use_exe_path" which allows the TargetList::CreateTarget to centralize where the resolving happens and "do the right thing". llvm-svn: 166186
* <rdar://problem/12211320>Greg Clayton2012-09-051-2/+10
| | | | | | When the vendor and OS are not specified in a triple, only let unspecified vendor and OS fields matchs for the current host platform. llvm-svn: 163248
* <rdar://problem/11757916>Greg Clayton2012-08-291-0/+2
| | | | | | | | | | | | 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
* <rdar://problem/11358639>Greg Clayton2012-05-081-3/+31
| | | | | | | | Switch over to the "*-apple-macosx" for desktop and "*-apple-ios" for iOS triples. Also make the selection process for auto selecting platforms based off of an arch much better. llvm-svn: 156354
* Patch from Viktor Kutuzov <vkutuzov@accesssoftek.com>:Johnny Chen2012-04-141-7/+12
| | | | | | | | | | | Hello everyone, please find the attached patch for TOT and lldb-platform-work branch, which provides the following changes: - fixed a crash in the ProcessPOSIX constructor when an executable module object is not yet created. - added support for the multi instanciated FreeBSD platform objects (the local host and remote as example). - enabled the remote gdb plugin on FreeBSD. llvm-svn: 154724
* Platforms can now auto-select themselves if you specify a full target triple ↵Greg Clayton2012-03-202-3/+14
| | | | | | | | when doing a "target create" command. Each platform now knows if it can handle an architecture and a platform can be found using an architecture. Each platform can look at the arch, vendor and OS and know if it should be used or not. llvm-svn: 153104
* Enabled the PlatformLinux and PlatforFreeBSD on MacOSX so they can be usedGreg Clayton2012-02-271-1/+2
| | | | | | | | | | | | and also so we don't break them with our code changes. The _only_ plug-ins that should be #ifdef'ed out and not compiled in LLDB are those that only work when running natively on the host system. This fixed bot the PlatformLinux and PlatformFreeBSD build breakages that were due to ModuleSpec changes. llvm-svn: 151539
* Patch from Pawel Worach to make FreeBSD work again after ModuleSpec changes.Greg Clayton2012-02-272-36/+22
| | | | llvm-svn: 151532
* This patch combines common code from Linux and FreeBSD intoJohnny Chen2012-01-052-21/+22
| | | | | | | | | | a new POSIX platform. It also contains fixes for 64bit FreeBSD. The patch is based on changes by Mark Peek <mp@FreeBSD.org> and "K. Macy" <kmacy@freebsd.org> in their github repo located at https://github.com/fbsd/lldb. llvm-svn: 147609
* FreeBSD platform patch from Filipe!Johnny Chen2011-09-092-178/+570
| | | | llvm-svn: 139338
* Patch by Filipe for FreeBSD platform plugin!Johnny Chen2011-08-292-15/+37
| | | | llvm-svn: 138761
* Patch by David Forsythe to build lldb on FreeBSD!Johnny Chen2011-08-023-0/+385
I did not take the patch for ClangExpressionParser.cpp since there was a recent change by Peter for the same line. Feel free to disagree. :-) Reference: ---------------------------------------------------------------------- r136580 | pcc | 2011-07-30 15:42:24 -0700 (Sat, 30 Jul 2011) | 3 lines Add reloc arg to standard JIT createJIT() Fixes non-__APPLE__ build. Patch by Matt Johnson! ---------------------------------------------------------------------- Also, I ignore the part of the patch to remove the RegisterContextDarwin*.h/.cpp. llvm-svn: 136720
OpenPOWER on IntegriCloud