summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/debugserver.xcodeproj
Commit message (Collapse)AuthorAgeFilesLines
* Add Foundation to the debugserver-mini dependencies;Jason Molenda2017-01-261-0/+2
| | | | | | debugserver-mini can use Foundation. llvm-svn: 293140
* Link debugserver against Foundation to get access to NSProcessInfo.Sean Callanan2017-01-251-14/+12
| | | | | | debugserver-mini can't use Foundation so disable that code there. llvm-svn: 293098
* Reverted 292880 to fix a linker error.Sean Callanan2017-01-251-49/+0
| | | | | | <rdar://problem/30180883> llvm-svn: 293022
* weak-link debugserver against the LoggingSupport framework;Jason Molenda2017-01-241-0/+49
| | | | | | | | systems without this framework will not get a link error. <rdar://problem/30158797> llvm-svn: 292880
* fix Xcode build after r281226Todd Fiala2016-09-121-1/+1
| | | | llvm-svn: 281243
* Update debugserver project to pull in StdStringExtractor.cpp instead of the newJason Molenda2016-08-301-8/+6
| | | | | | llvm-using StringExtractor.cpp in the xcode project file settings. llvm-svn: 280039
* Add StructuredData plugin type; showcase with new DarwinLog featureTodd Fiala2016-08-191-3/+148
| | | | | | | | | | | | Take 2, with missing cmake line fixed. Build tested on Ubuntu 14.04 with clang-3.6. See docs/structured_data/StructuredDataPlugins.md for details. differential review: https://reviews.llvm.org/D22976 reviewers: clayborg, jingham llvm-svn: 279202
* Revert "Add StructuredData plugin type; showcase with new DarwinLog feature"Todd Fiala2016-08-191-148/+3
| | | | | | This reverts commit 1d885845d1451e7b232f53fba2e36be67aadabd8. llvm-svn: 279200
* Add StructuredData plugin type; showcase with new DarwinLog featureTodd Fiala2016-08-191-3/+148
| | | | | | | | | See docs/structured_data/StructuredDataPlugins.md for details. differential review: https://reviews.llvm.org/D22976 reviewers: clayborg, jingham llvm-svn: 279198
* Remove CFData from the xcodeproj as wellEnrico Granata2016-08-091-8/+0
| | | | llvm-svn: 278158
* Add a new DynamicLoader plugin that uses SPI that are in developmentJason Molenda2016-07-211-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | for the fall (northern hemisphere) 2016 Darwin platforms to learn about loaded images, instead of reading dyld internal data structures. These new SPI don't exist on older releases, and new packets are needed from debugserver to use them (those changes are already committed). I had to change the minimum deployment target for debugserver in the xcode project file to macOS 10.10 so that debugserver will use the [[NSProcessInfo processInfo] operatingSystemVersion] call in MachProcess::GetOSVersionNumbers to get the operarting system version # -- this API is only available in macOS 10.10 and newer ("OS X Yosemite", released Oct 2014). If we have many people building llvm.org lldb on older systems still, we can back off on this for the llvm.org sources. There should be no change in behavior with this commit, either to older darwin systems or newer darwin systems. For now the new DynamicLoader plugin is never activated - I'm forcing the old plugin to be used in DynamicLoaderDarwin::UseDYLDSPI. I'll remove that unconditional use of the old plugin soon, so the newer plugin is used on the newest Darwin platforms. <rdar://problem/25251243> llvm-svn: 276254
* Fix the "Release" build on MacOSX for debugserver. Extra bad include paths ↵Greg Clayton2016-06-211-1/+0
| | | | | | were making things not build due to header file issues with stdio.h. llvm-svn: 273306
* Change the "debugserver-mini" target (a version of debugserverJason Molenda2016-06-211-16/+24
| | | | | | | | | | | | | | | | | | which doesn't like against all the extra UI frameworks on ios) so it now generates a binary called "debugserver-nonui" and puts it in /usr/local/bin instead of /Developer/usr/bin. Add some cruft to RNBDefs.h to get the version number (provided by Xcode at build time) with either the name "debugserver" or "debugserver_nonui" as appropriate. Add the "debugserver-mini" target to the top level "ios" target in lldb xcode project file, so this nonui debugserver will be built along with the normal lldb / debugserver. <rdar://problem/24730789> llvm-svn: 273236
* Bump the lldb version # in the xcode project files fromJason Molenda2016-03-151-19/+19
| | | | | | 350.99.0 to 360.99.0. llvm-svn: 263529
* Xcode suggested enabling a "no common blocks" warningJason Molenda2015-10-292-9/+22
| | | | | | | (whatever that is) and wanted to clean up some duplicated entries in the project files. llvm-svn: 251586
* Remove some unnecessary macosx.internal SDK settings inJason Molenda2015-10-251-9/+9
| | | | | | the debugserver xcode project file. llvm-svn: 251221
* Upstreaming the apple internal changes that accumulated during theJason Molenda2015-10-231-28/+1013
| | | | | | | | | | | | previous release. Most of the diffs are duplication in the xcode project file caused by adding a "debugserver-mini" target. Jim Ingham added support for a new SPI needed to request app launches on iOS. Greg Clayton added code to indicate the platform of the binary (macosx, ios, watchos, tvos) based on Mach-O load commands. Jason Molenda added code so debugserver will identify when it is running on a tvos/watchos device to lldb. llvm-svn: 251091
* Remove DNBConfig.hBruce Mitchener2015-08-131-26/+0
| | | | | | | | | | | | | | | Summary: This was no longer needed and hasn't been needed since r143244 in 2011. This removes everything associated with generating or using it. Reviewers: clayborg, jasonmolenda Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D11971 llvm-svn: 244850
* Bump the version # in the xcode proj file from major number 340 to 350.Jason Molenda2015-08-041-8/+8
| | | | | | The SB API for major version 340 won't be changing any more. llvm-svn: 243943
* Fix debugserver build after someone moved StrintExtractor.h.Greg Clayton2015-07-071-4/+4
| | | | llvm-svn: 241628
* Resubmitting 240466 after fixing the linux test suite failures.Greg Clayton2015-06-251-0/+2
| | | | | | | | | | | | | | | A few extras were fixed - Symbol::GetAddress() now returns an Address object, not a reference. There were places where people were accessing the address of a symbol when the symbol's value wasn't an address symbol. On MacOSX, undefined symbols have a value zero and some places where using the symbol's address and getting an absolute address of zero (since an Address object with no section and an m_offset whose value isn't LLDB_INVALID_ADDRESS is considered an absolute address). So fixing this required some changes to make sure people were getting what they expected. - Since some places want to access the address as a reference, I added a few new functions to symbol: Address &Symbol::GetAddressRef(); const Address &Symbol::GetAddressRef() const; Linux test suite passes just fine now. <rdar://problem/21494354> llvm-svn: 240702
* Revert "Reduced packet counts to the remote GDB server where possible."Chaoren Lin2015-06-231-2/+0
| | | | | | | | | | This reverts commit 0cc0745ea9c68d7fdcadc9904cee3f13c96dae60. Due to breakage on Linux build bot: http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/3436 llvm-svn: 240371
* Reduced packet counts to the remote GDB server where possible.Greg Clayton2015-06-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have been working on reducing the packet count that is sent between LLDB and the debugserver on MacOSX and iOS. Our approach to this was to reduce the packets required when debugging multiple threads. We currently make one qThreadStopInfoXXXX call (where XXXX is the thread ID in hex) per thread except the thread that stopped with a stop reply packet. In order to implement multiple thread infos in a single reply, we need to use structured data, which means JSON. The new jThreadsInfo packet will attempt to retrieve all thread infos in a single packet. The data is very similar to the stop reply packets, but packaged in JSON and uses JSON arrays where applicable. The JSON output looks like: [ { "tid":1580681, "metype":6, "medata":[2,0], "reason":"exception", "qaddr":140735118423168, "registers": { "0":"8000000000000000", "1":"0000000000000000", "2":"20fabf5fff7f0000", "3":"e8f8bf5fff7f0000", "4":"0100000000000000", "5":"d8f8bf5fff7f0000", "6":"b0f8bf5fff7f0000", "7":"20f4bf5fff7f0000", "8":"8000000000000000", "9":"61a8db78a61500db", "10":"3200000000000000", "11":"4602000000000000", "12":"0000000000000000", "13":"0000000000000000", "14":"0000000000000000", "15":"0000000000000000", "16":"960b000001000000", "17":"0202000000000000", "18":"2b00000000000000", "19":"0000000000000000", "20":"0000000000000000"}, "memory":[ {"address":140734799804592,"bytes":"c8f8bf5fff7f0000c9a59e8cff7f0000"}, {"address":140734799804616,"bytes":"00000000000000000100000000000000"} ] } ] It contains an array of dicitionaries with all of the key value pairs that are normally in the stop reply packet. Including the expedited registers. Notice that is also contains expedited memory in the "memory" key. Any values in this memory will get included in a new L1 cache in lldb_private::Process where if a memory read request is made and that memory request fits into one of the L1 memory cache blocks, it will use that memory data. If a memory request fails in the L1 cache, it will fall back to the L2 cache which is the same block sized caching we were using before these changes. This allows a process to expedite memory that you are likely to use and it reduces packet count. On MacOSX with debugserver, we expedite the frame pointer backchain for a thread (up to 256 entries) by reading 2 pointers worth of bytes at the frame pointer (for the previous FP and PC), and follow the backchain. Most backtraces on MacOSX and iOS now don't require us to read any memory! We will try these packets out and if successful, we should port these to lldb-server in the near future. <rdar://problem/21494354> llvm-svn: 240354
* Add a new wart, I mean feature, on to gdb-remote protocol: compression.Jason Molenda2015-06-181-8/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some communication channels, sending large packets can be very slow. In those cases, it may be faster to compress the contents of the packet on the target device and decompress it on the debug host system. For instance, communicating with a device using something like Bluetooth may be an environment where this tradeoff is a good one. This patch adds a new field to the response to the "qSupported" packet (which returns a "qXfer:features:" response) -- SupportedCompressions and DefaultCompressionMinSize. These tell you what the remote stub can support. lldb, if it wants to enable compression and can handle one of those algorithms, it can send a QEnableCompression packet specifying the algorithm and optionally the minimum packet size to use compression on. lldb may have better knowledge about the best tradeoff for a given communication channel. I added support to debugserver an lldb to use the zlib APIs (if -DHAVE_LIBZ=1 is in CFLAGS and -lz is in LDFLAGS) and the libcompression APIs on Mac OS X 10.11 and later (if -DHAVE_LIBCOMPRESSION=1). libz "zlib-deflate" compression. libcompression can support deflate, lz4, lzma, and a proprietary lzfse algorithm. libcompression has been hand-tuned for Apple hardware so it should be preferred if available. debugserver currently only adds the SupportedCompressions when it is being run on an Apple watch (TARGET_OS_WATCH). Comment that #if out from RNBRemote.cpp if you want to enable it to see how it works. I haven't tested this on a native system configuration but surely it will be slower to compress & decompress the packets in a same-system debug session. I haven't had a chance to add support for this to GDBRemoteCommunciationServer.cpp yet. <rdar://problem/21090180> llvm-svn: 240066
* Bump major vers # in xcode project file from 330 to 340.Jason Molenda2015-03-061-8/+8
| | | | llvm-svn: 231441
* Separate monolithic GDBRemoteCommunicationServer class into 4 partTamas Berghammer2015-02-111-1/+1
| | | | | | | | | | | GDBRemoteCommunicationServer: Basic packet handling, handler registration LLDBCommonPacketHandler: Common packet handling for lldb-platform and lldb-gdbserver LLDBPlatformPacketHandler: lldb-platform specific packet handling LLGSPacketHandler: lldb-gdbserver specific packet handling Differential Revision: http://reviews.llvm.org/D7538 llvm-svn: 228823
* Remove unused service plist.Jason Molenda2014-10-301-2/+0
| | | | llvm-svn: 220892
* Enable warnings in the debugserver project file..Jason Molenda2014-10-161-1/+17
| | | | llvm-svn: 219917
* Xcode recommended these changes to the project file. It recommendedJason Molenda2014-10-161-1/+1
| | | | | | | a number of warnings to be enabled. The one making the most noise across the code base right now is CLANG_WARN_UNREACHABLE_CODE = YES. llvm-svn: 219910
* Rework the way we pass "run multiple command" options to the various API's thatJim Ingham2014-10-111-3/+5
| | | | | | | | | | | | | | | do that (RunCommandInterpreter, HandleCommands, HandleCommandsFromFile) to gather the options into an options class. Also expose that to the SB API's. Change the way the "-o" options to the lldb driver are processed so: 1) They are run synchronously - didn't really make any sense to run the asynchronously. 2) The stop on error 3) "quit" in one of the -o commands will not quit lldb - not the command interpreter that was running the -o commands. I added an entry to the run options to stop-on-crash, but I haven't implemented that yet. llvm-svn: 219553
* Bump the verison number in the xcode project files.Jason Molenda2014-08-211-8/+8
| | | | llvm-svn: 216245
* Pull ProcessInfo and ProcessLaunchInfo out of Target/Process.Todd Fiala2014-06-301-3/+3
| | | | | | | | | | | | | | | Elevate ProcessInfo and ProcessLaunchInfo into their own headers. llgs will be using ProcessLaunchInfo but doesn't need to pull in the rest of Process.h. This also moves a bunch of implementation details from the header declarations into ProcessInfo.cpp and ProcessLaunchInfo.cpp. Tested on Ubuntu 14.04 Cmake and MacOSX Xcode. Related to https://github.com/tfiala/lldb/issues/26. llvm-svn: 212005
* Initial merge of some of the iOS 8 / Mac OS X Yosemite specificJason Molenda2014-06-131-29/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lldb support. I'll be doing more testing & cleanup but I wanted to get the initial checkin done. This adds a new SBExpressionOptions::SetLanguage API for selecting a language of an expression. I added adds a new SBThread::GetInfoItemByPathString for retriving information about a thread from that thread's StructuredData. I added a new StructuredData class for representing key-value/array/dictionary information (e.g. JSON formatted data). Helper functions to read JSON and create a StructuredData object, and to print a StructuredData object in JSON format are included. A few Cocoa / Cocoa Touch data formatters were updated by Enrico to track changes in iOS 8 / Yosemite. Before we query a thread's extended information, the system runtime may provide hints to the remote debug stub that it will use to retrieve values out of runtime structures. I added a new SystemRuntime method AddThreadExtendedInfoPacketHints which allows the SystemRuntime to add key-value type data to the initial request that we send to the remote stub. The thread-format formatter string can now retrieve values out of a thread's extended info structured data. The default thread-format string picks up two of these - thread.info.activity.name and thread.info.trace_messages. I added a new "jThreadExtendedInfo" packet in debugserver; I will add documentation to the lldb-gdb-remote.txt doc soon. It accepts JSON formatted arguments (most importantly, "thread":threadnum) and it returns a variety of information regarding the thread to lldb in JSON format. This JSON return is scanned into a StructuredData object that is associated with the thread; UI layers can query the thread's StructuredData to see if key-values are present, and if so, show them to the user. These key-values are likely to be specific to different targets with some commonality among many targets. For instance, many targets will be able to advertise the pthread_t value for a thread. I added an initial rough cut of "thread info" command which will print the information about a thread from the jThreadExtendedInfo result. I need to do more work to make this format reasonably. Han Ming added calls into the pmenergy and pmsample libraries if debugserver is run on Mac OS X Yosemite to get information about the inferior's power use. I added support to debugserver for gathering the Genealogy information about threads, if it exists, and returning it in the jThreadExtendedInfo JSON result. llvm-svn: 210874
* Revert r209142.Todd Fiala2014-05-192-10/+2
| | | | | | | Need to spend a little more time with suppressing the debugserver 64-to-32 bit warnings. Will re-submit after I get the warnings properly suppressed. llvm-svn: 209151
* Update Xcode settings for Xcode 5.1 (5B130a) to remove workspace warning.Todd Fiala2014-05-192-2/+10
| | | | llvm-svn: 209142
* lldb arm64 import.Jason Molenda2014-03-291-18/+45
| | | | | | | | | | | | | | | | These changes were written by Greg Clayton, Jim Ingham, Jason Molenda. It builds cleanly against TOT llvm with xcodebuild. I updated the cmake files by visual inspection but did not try a build. I haven't built these sources on any non-Mac platforms - I don't think this patch adds any code that requires darwin, but please let me know if I missed something. In debugserver, MachProcess.cpp and MachTask.cpp were renamed to MachProcess.mm and MachTask.mm as they picked up some new Objective-C code needed to launch processes when running on iOS. llvm-svn: 205113
* Convert to codesigning by hand to work around bugs in Xcode cert verification.Jim Ingham2014-02-181-3/+17
| | | | llvm-svn: 201595
* Update the lldb version number in the xcode project files from 310.99.0 to ↵Jason Molenda2014-01-101-8/+8
| | | | | | 320.99.0. llvm-svn: 198917
* Remove stuff from debugserver Xcode project that didn't belong.Greg Clayton2013-12-121-13/+0
| | | | llvm-svn: 197188
* Expose SBPlatform through the public API.Greg Clayton2013-11-201-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example code: remote_platform = lldb.SBPlatform("remote-macosx"); remote_platform.SetWorkingDirectory("/private/tmp") debugger.SetSelectedPlatform(remote_platform) connect_options = lldb.SBPlatformConnectOptions("connect://localhost:1111"); err = remote_platform.ConnectRemote(connect_options) if err.Success(): print >> result, 'Connected to remote platform:' print >> result, 'hostname: %s' % (remote_platform.GetHostname()) src = lldb.SBFileSpec("/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework", False) dst = lldb.SBFileSpec() # copy src to platform working directory since "dst" is empty err = remote_platform.Install(src, dst); if err.Success(): print >> result, '%s installed successfully' % (src) else: print >> result, 'error: failed to install "%s": %s' % (src, err) Implemented many calls needed in lldb-platform to be able to install a directory that contains symlinks, file and directories. The remote lldb-platform can now launch GDB servers on the remote system so that remote debugging can be spawned through the remote platform when connected to a remote platform. The API in SBPlatform is subject to change and will be getting many new functions. llvm-svn: 195273
* r189295 inadvertently set the codesigning identity for the debugserver Debug ↵Jim Ingham2013-09-061-1/+1
| | | | | | | | configuration to "", which causes debugging to fail for that configuration. Setting it back to lldb_codesign. llvm-svn: 190172
* merge lldb-platform-work branch (and assorted fixes) into trunkDaniel Malea2013-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Bump version number to 310.99.0.Jason Molenda2013-07-151-8/+8
| | | | llvm-svn: 186304
* <rdar://problem/13892516>Greg Clayton2013-05-211-4/+0
| | | | | | LLDB can now debug across calls to exec when the architecture changes from say i386 to x86_64 (on darwin). llvm-svn: 182345
* <rdar://problem/13521159>Greg Clayton2013-03-272-2/+13
| | | | | | | | LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down. All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down. llvm-svn: 178191
* Remove FunctionProfiler and ProfileObjectiveC action classes as they are not ↵Greg Clayton2013-03-261-16/+0
| | | | | | used. llvm-svn: 178035
* More cleanup on the lldb-perf code:Greg Clayton2013-03-191-24/+20
| | | | | | | | | | | | | | | - TestCase.m_thread is now filled in with the first thread that has a valid stop reason. This eliminates the need for the SelectMyThread() functions. - The first thread that stops for a reason is also set as the selected thread in the process in case any command line commands are run. - Changed launch over to take a SBLaunchInfo parameter so that the launch function doesn't keep getting new arguments as they are needed. - TestCase::Setup() and TestCase::Launch(SBLaunchInfo) now return bool to indicate success of setup and launch. - ActionWanted::Next(SBThread) was renamed to ActionWanted::StepOver(SBThread) - ActionWanted::Finish(SBThread) was renamed to ActionWanted::StepOut(SBThread) llvm-svn: 177376
* Also remove actual link against the ARMDisassembler framework fromJason Molenda2013-03-091-8/+0
| | | | | | debugserver's build settings. llvm-svn: 176760
* We don't need to specify the VALID_ARCHS in the xcode project file.Jason Molenda2013-03-091-8/+0
| | | | | | | Also, don't build debugserver with -DUSE_ARM_DISASSEMBLER_FRAMEWORK - that framework isn't around at this point. llvm-svn: 176759
* Updated Apple LLDB version to lldb-300.99.0. AlsoSean Callanan2013-03-071-8/+8
| | | | | | | updated the build system to support the new Apple LLDB versioning scheme. llvm-svn: 176662
OpenPOWER on IntegriCloud