Skip to content

Instantly share code, notes, and snippets.

@xboxfanj
Created April 3, 2017 22:08
Show Gist options
  • Save xboxfanj/1b4b8c0643b2f3ec15b47f323fc1db2e to your computer and use it in GitHub Desktop.
Save xboxfanj/1b4b8c0643b2f3ec15b47f323fc1db2e to your computer and use it in GitHub Desktop.
Android 7.1.1 r9 to Android 7.1.2 r5 diff
This file has been truncated, but you can view the full file.
project art/
f9e3754 Revert "Revert "ART: Give JIT thread pool workers a peer""
2db6c40 ART: Add ThreadPool mode that creates peers
f5f462b Add Thread entry to signal if the thread can call into java
3f3d4d6 Cache flush/invalidate needs RWX permission
61049e8 Delete extra arm64/mips64 MterpReturn suspend check
40d4c76 Add visiting for class loaders in StickyMarkSweep
9d5d85e Revert "Revert "Prune uses library classes even without profile DO NOT MERGE""
fc9bec2 Revert "Prune uses library classes even without profile DO NOT MERGE"
dfd17f1 Prune uses library classes even without profile
8394cee Prune uses library classes even without profile DO NOT MERGE
2b25ca9 Fix event reporting from the debugger thread
b33635d ART: Prioritize reference table dump
project bionic/
b7ec7ca Fix streaming(memcpy) performance on Cortex-A7
8402b42 Add cortex-a7 specific routines.
418fe1e Check for bad packets in getaddrinfo.c's getanswer.
2190eb1 DO NOT MERGE: Update timezone data to 2016j
2993aaa Fix x86_64 build which uses g++ and hits -Werror=unused-but-set-variable
c0f1f55 Fix uninitialized variable usage.
1dc3ae1 Fix error case to print newlines properly.
f1e4478 Make prctl test check maps.
b7f0267 Fix uninitialized variable usage.
105a0bd Check for bad packets in getaddrinfo.c's getanswer.
9ea3f1c Check for bad packets in getaddrinfo.c's getanswer.
87c0dba Check for bad packets in getaddrinfo.c's getanswer.
dd0155f DO NOT MERGE : Update timezone data to 2016i.
41e96c8 DO NOT MERGE : Update timezone data to 2016h.
project bootable/recovery/
54ea136 Add a checker for signature boundary in verifier
48be23c Remove outdated reference to icon_installing.png
1bf1772 DO NOT MERGE updater: Add "write_value()" function.
195ff7f DO NOT MERGE ANYWHERE init: move healthd to late-init
2f2c723 Shrink all recovery loop images with zopflipng
de1b53d DO NOT MERGE Fail gracefully when we fail to fork the update binary
d00f5eb Have gr_init_font alloc memory for the font
ad8b5a6 Remove duplicate thread loop
43d1860 Remove debug log statement; fix build
5e7cfb9 Remove duplicate methods and variables from WearRecoveryUI
35fff61 Support use of custom fonts in miniui
project build/
c61a657 N2G47J
d137649 N2G47I
40d78b4 N2G47H
30d8a9e N2G47G
bd0eab8 N2G47F
5f6e030 N2G47E
f0b041a N2G47D
425dfda N2G47C
d4cd99e N2G47B
302cc8a N2G47
127d348 N2G46
2a53b34 N2G45
8ee3a4c Update Security String to 2017-04-05 on nyc-dev
93c1a72 Update Security String to 2017-04-01 on nyc-dev
af15999 [DO NOT MERGE] Update Security String to 2017-04-05 for mnc-dev
06a5749 [DO NOT MERGE] Update Security String to 2017-04-01 for mnc-dev
e2eff3f [DO NOT MERGE] Update Security String to 2017-04-05 on lmp-dev
ffab699 [DO NOT MERGE] Update Security String to 2017-04-01 on lmp-dev
502366c [DO NOT MERGE] Updating Security String to 2017-04-05 on klp-dev
00c627e [DO NOT MERGE] Update Security String to 2017-04-01 on klp-dev
060cdb5 N2G44
e6e285b N2G43
e9f855c N2G40B
ea7c86b N2G40
a0ab81d N2G39
6fd4eaa N2G38
cf2a651 N2G37
8f9f9f9 N2G36
26cc825 N2G33B
023002c N2G33
295af45 N2G32
456de41 N2G31
655737e N2G30B
9d1a275 N2G30
5594953 N2G29
99e5a4c N2G26
4799524 N2G25
b430f1f N2G24
29e1cc4 N2G23
95a22c4 N2G22
3392a68 N2G19
8570bce Copy IDC for goldfish_rotary to /system/usr/idc
9331eea N2G18
25b39b1 Updating Security String to 2017-03-05 on nyc-dev
003e5aa Updating Security String to 2017-03-01 on nyc-dev
b6ac653 [DO NOT MERGE] Updating Security String to 2017-03-05 on mnc-dev
a0cf89a [DO NOT MERGE] Updating Security String to 2017-03-01 on mnc-dev
8488865 [DO NOT MERGE] Updating Security String to 2017-03-05 on lmp-dev
28dae4b [DO NOT MERGE] Updating Security String to 2017-03-01 on lmp-dev
3597d69 [DO NOT MERGE] Updating Security String to 2017-03-05 on klp-dev b/34345751
6cece24 [DO NOT MERGE] Updating Security String to 2017-03-01 on klp-dev
1a21473 N2G17
14f944e N2G16
fe50dff N2G15
bf957d9 N2G12B
bdceef4 Allow /dev/goldfish_sync
f23565e N2G12
9d84051 N2G11B
72cb1ae N2G11
634c142 N2G10B
f3480a0 N2G10
36289bd N2G09
ca4d937 N2G08
bfc66c8 N2G05C
ae67bab build_image: add support for specifying number of inodes [DO NOT MERGE]
0c363c5 N2G05B
37a73e0 build_image: add support for specifying number of inodes [DO NOT MERGE]
ce0b339 N2G05
a5cb936 N2G04
cb6bae7 N2G03
cfb3c72 N2G02
4ea6ab5 N2G01
0ee6172 N2F90
ae16181 N2F89
b6ac187 N2F88B
a3cfec5 N2F88
98ee29e N2F87
8f3fbe7 N2F86
1856584 N2F82B
faf075c N2F82
3fd94cb N2F81
2f88dd6 N2F80
0dfc0e5 N2F79
0aa4f6a N2F76
b8b3bc9 N2F75
08c9346 N2F74B
31ac096 N2F74
07cde5f N2F73
9a30bf5 N2F72
4793b67 N2F69
af63566 Update Security String to 2017-02-05 on nyc-dev
35901a7 Update Security String to 2017-02-01 on nyc-dev
06e7d1f [DO NOT MERGE] Update Security String to 2017-02-05 on mnc-dev
f92880e [DO NOT MERGE] Update Security String to 2017-02-01 on mnc-dev
fd48c0b Update Security String to 2017-02-05 in lmp-dev
19717df Update Security String to 2017-02-01 in lmp-dev
7078534 Updating Security String to 2017-02-05 in klp-dev
b1a7ec0 Update Security String to 2017-02-01 in klp-dev
aed8b18 N2F68B
2c03604 N2F68
035abf7 N2F67
dad33c5 N2F66
937f7f5 N2F65
47ec5ab Build recovery-two-step.img for two-step OTAs.
31c4628 N2F62
7824073 DO NOT MERGE increase generic_mips system partition
57f9571 N2F61
18264c2 N2F60
7bb3aff Makefile: Pack verity_verifier into otatools.zip.
7880c24 N2F59
a4a7fa4 N2F58
0f12aaf N2F55
fc0189f Adding in some documentation to ensure files are updated as needed
69b3653 N2F54
6b1778b N2F53
8c1b05d N2F52
72e90e7 N2F51
d038673 N2F48
2625001 Updating Security String to 2017-01-05
a0985a8 Updating Security String to 2017-01-01
190129b Updating Security String to 2017-01-05 on nyc-dev
202380f Updating Security String to 2017-01-01 on nyc-dev
5e46dc2 Updating Security String to 2017-01-05 on mnc-dev
7224901 Updating Security string to 2017-01-01 on mnc-dev
4f483f1 Update Security String to 2017-01-05 in klp-dev
21f5d28 Update Security string to 2017-01-01 in klp-dev
41d4523 N2F47
3755c6a N2F46B
6eb6218 N2F46
b60ce24 N2F45B
5004e1d N2F45
3af94e3 N2F44
366795d N2F41B
9a675c9 DO NOT MERGE: build_image: add padding to match partition size
d1164a4 N2F41
cd4f7c9 releasetools: Use java_path in sign_target_files_apks.py.
3b026dc N2F40
32fa812 N2F39
daf430d N2F38
b4cd33f releasetools: Make BBOTA incremental generation repeatable.
ca3f53c N2F37
89d1205 N2F34B
798125f N2F34
24087c8 N2F33
61be03b DO NOT MERGE Nougat MR2 is 7.1.2
0f94c5a N2F32
8fef6bb N2F31
3208f4b N2F30
855bd04 N2F27
66de9bb N2F26
c781483 releasetools: Support verity signer args.
a711c4b N2F25
404318a N2F24 - prime the buildid for nyc-mr2-release.
8560ceb Empty commit to trigger build
3c97fa7 build: tools: Add json collection of installed files with hashes.
3451f24 Change name of overlay subdir 'sku'->'theme'
a08a101 Install runtime resource overlay without subdir.
8c3ddab Don't regenerate userdata.img when signing
7390ef5 Avoid accidentally using the host's native 'as' command.
project compatibility/cdd/
f652894 Docs: Final cleanup for CDD source.
d7493fb CDD: Fix typo in high frequency range for unprocessed audio
b65081c CDD: Require settings menu to select default assistant.
5fe690e CDD: Device requirements for preinstalled apps using assist.
251252f CDD: Preinstalled assistant apps specific requirements related to context sharing indication.
545c109 CDD: Behavioral changes in N, for an app with DELETE_PACKAGES permission trying to delete a package.
7eabd4b CDD: Require Notification management API's to match the SDK.
db4397b CDD: Functionality to provide encryption support.
a02c649 CDD: Require system privileged permissions to only be granted to apps pre-installed in the whitelisted path.
71c9863 CDD: Recommend A/B system update support
0dadb47 CDD: Fix a typo for HIGH FI sensor requirements (gyro)
fec9503 CDD: Bump minimum memory requirements
1502c6b CDD: Strengthen accessibility recommendations
222d95c CDD: Clarify secure lock screen requirements.
b835152 CDD: Require Type-C devices with host/peripheral mode to implement Dual Role Port properly
067977b Docs: fix grammar/typos in DO requirement
a717379 CDD: Align WiFi requirement for TV with 7.4.2
fc2492b CDD: Clarify device owner requirements
48ef298 Docs: Fix list formatting.
7a24c7b Docs: Fix link to seccomp-tsync material.
4e5bcc8 Docs: Replace ":" with "."
7cf0965 Docs: Unit fixes and formatting.
dbb3d29 Docs: Fix mdashes, remove comma, indent list..
8c13d39 Docs: Add line for format, use html link for ( url.
b745d59 Docs: Fixed Markdown link in html block.
d1d88fe Docs: Renumber duplicate section number.
0838a90 Docs: Fix heading levels.
380bb49 CDD: Android TV video codec requirements change
68caf31 CDD: Add requirements related to DND rules and policy set by apps
21b67ed CDD: Direct boot and FBE requirements
fd6593e CDD: Managed profile capable devices MUST support a work challenge
29585b0 CDD: Require splitted mediaserver processes to improve security.
9f0a214 CDD: Number Blocking
fdefb55 CDD: MTP support on USB host mode
c94a581 CDD: Long press on home should follow the user's setting for the assist app.
322e12c CDD: Location change for sepolicy on N.
4313515 Docs: Spell check
012ad98 CDD: low power req only applies to Game Rotation Vector Sensor
f8f9a79 CDD: Recommend new overview function key user interactions
064fe12 CDD: Remove detail from Raw image decoder requirement
de8e8e7 CDD: Add multi-window mode requirements
088b82c CDD: Clarify native API namespace requirements
035fcc8 CDD: Data Saver
ae806a9 Docs: Update link for changelog.
7ab5273 CDD: Relax Wi-Fi requirements for Android Television devices due to improvements in ethernet connection.
64b23e8 CDD: Strongly Recommend Screen Zoom
bac8399 CDD: Add missing section on USB and added USB Type-C section.
eb1a012 CDD: Recommend accessibility services as part of out-of-the-box flow.
73e34c0 CDD: Require consistent system-wide root CAs across all Android
eaaabfb Docs: Update link for changelog.
8ea6f16 CDD: Require APK Signature Scheme v2 support
e04c6d0 Docs: Remove line break for proper list formatting.
9990793 Docs: Change redundant section 3.13 to 3.14.
31f7646 Docs: Add missing heading 3.2.3, Intent Compatibility
b4c9b29 CDD: Add section on performance consistency.
36f635e CDD: Change Android Auto screen size to 750x480 dp.
31d647b CDD: Remove req to symlink libGLESv2.so to libGLESv3.so
f5a080e CDD: High perf VR devices requires BT 4.2 and LE Data Length
16d0534 CDD: Pose Sensor Requirements
7058d7c CDD: Virtual Reality
bfbe95a CDD: Update app private storage requirements.
4b4b957 CDD: Clarify req. to notify if data traffic can be monitored.
ec569df CDD: Introduce Safe Mode Requirements
64a1a93 Docs: Improve definition of Core Applications intents
a38c5d4 Docs: Fix wording.
fd71987 CDD: Introduce native library namespace requirements
d4909a0 CDD: Require support for android.car API package for Android automotive
e9dc98d CDD: Android Extensions
3d705a9 CDD: Updates to media codec section.
a6abb61 CDD: Additions for AAC DRC metadata support
f23d259 CDD: Require AAC support 5.0/1 w/o downmixing.
061cea6 CDD: Require detection of three key ranges, strongly recommend fourth key range.
6b5292a CDD: Require one of 44.1, 48 kHz sampling rates for voice recognition
c05f014 CDD: Add recommendations for pro audio feature
2cf721f DOCS: Exclude .git directory from build.
84e7f1b CDD: Clarify navigation requirements for TV
25fa60f CDD: Activity Switching requirement change.
aeeda3b CDD: Clarify external cameras MAY be connected through non-USB ports.
13dfe15 CDD: Pro Audio requires OpenSL ES PCM buffer queue API for latency and USB audio
8538a69 CDD: Vehicle UI APIs
683aa3e CDD: Chnage GPS/GNSS accuracy requirements to 20 meters
f847606 CDD: Power-saving updates batterystats/doze
fcd5a3d CDD: Automotive sensors: update existing and new
7ad7074 CDD: Recommend stream-specific adjustment of volume for automotive
72b384c CDD: Automotive specific sensors
87bc4c9 CDD: Recents not required for Automotive
444e425 Docs: Adding section 7.7 omitted in conversion.
e095e8f CDD: Device implementations must support the @TestApi annotation.
6f90fa7 CDD: Add native APIs and require memory req. for cameras.
e664d66 CDD: Add requirements for when NFC Felica Host Card Emulation is on
c169057 CDD: HiFi sensors now MUST have higher accel. measurement freq.
8b150b3 CDD: Relax and clarify near-ultrasound microphone requirements
9f3cf16 CDD: Update audio latency definitions
cbb7127 CDD: Add new section 5.11 for unprocessed audio capturing
0e374d5 CDD: Device/product names must not change.
4e7ba87 CDD: Relax Overview title count requirement
6d45d40 CDD:Change Dreams to screen saver.
8ec6840 CDD: Add requirement for seccomp-BPF with TSYNC
d0b5bd2 CDD: Clarify media codec/protocol requirements
5ba112d CDD: MIDI over BLE is now required to report android.software.midi
8083c27 CDD: Move Quick Setting section to 3.13
31ae5a1 Fix chmod mode and add /usr/bin/python
55d3aeb CDD: Specify Vulkan related requirements.
1ed5132 CDD: Device Policy transparency requirements.
b9f16d9 CDD: Require reporting of flash lock status
2c78d43 CDD: Clarify GPS requirements and the getGnssYearOfHardware test method
57ae050 CDD: Require Unicode 9.0 emoji support.
bcffcba CDD: Clarify that only Watches can consume the KEYCODE_BACK long press event.
7ed6a5f CDD: Require support of rendering RAW images.
3c9da36 CDD: Require support of 3rd-party tiles in Quick Settings
ccd51c3 CDD: H.263 codecs are not any more required.
e88c8c3 CDD: Strict verified boot reqs. unless user has opted-out
0bd9ff4 CDD: System dialer & messaging apps must support cross profile contacts search
b9c0718 CDD: Security measures to protect vehicle systems
40b96fd CDD: Minimum automotive screen size
ed37b6f CDD: Automotive device usable in guest account
7422627 CDD: Clarify Assist intent requirements for Automotive
1a2fe8d CDD: Allow DPC to set VPN, without user consent.
ac20ae6 CDD: Specific Automotive Bluetooth profiles
f722c6f CDD: Power-saving mode, S3 and S4 updates. Bug: 28119993
311bc0d CDD: Require hardware-backed keystores
5bfb4a5 CDD: Require support of change default dialer intent.
9388802 Docs: Increased readability of Video Codecs Bug: 29640911
d9a74c5 CDD: Recommend badging to represent work contacts in call, messaging UI
50b912e CDD: Add requirements for new OpenGL ES 3.2 support
fa582e7 CDD: Recommend Recents key for TV.
cc2a60c CDD: 3.12. Require support for time shifting and strongly recommend DVR Bug: 29640911
3c72960 Docs: Fix external link to NDK docs
60e58a1 CDD: Clarify notifications for Automotive implementations
25d817a CDD: Automotive should have cellular data
8d8ee91 CDD: Automotive implementations MUST support OTA
f82265a CDD: Developer settings in moving vehicle
ee0fa6b Docs: Add CDD docs and the build script, and test examples
41acc07 Initial empty repository
project cts/
198248b DO NOT MERGE Disable CTS test using private attribute.
3bc7c22 DO NOT MERGE Add CTS test for CVE-2016-2429
a9092b3 Updating CTS Security Patch to 2017-04 on nyc-mr1
03b0320 DO NOT MERGE: Bump CTS and CTS Verifier to 7.1_r3
c5713b3 DO NOT MERGE: Bump CTS and CTS Verifier to 7.0_r7
785a5d2 DO NOT MERGE: Bump CTS and CTS Verifier to 6.0_r16
744abfc DO NOT MERGE: Bump CTS and CTS Verifier to 5.1_r17
e2f015f DO NOT MERGE: CTS Test for security vulnerability fix: potential OOB write in audioserver
5965f23 DO NOT MERGE: Test for bug 32915871
9de19f2 DO NOT MERGE: CTS Test for security vulnerability fix: potential OOB write in audioserver
85cb528 DO NOT MERGE: CTS Test for security vulnerability fix: potential OOB write in audioserver
8cad416 DO NOT MERGE: Test for bug 32915871
0e52869 DO NOT MERGE Add test for security bug 32873375
3ef2281 DO NOT MERGE: Add test for security bug 32873375
02c2cb0 DO NOT MERGE: Add CTS test for CVE-2016-2429
f3cc73b DO NOT MERGE: Add CTS test for CVE-2016-2429
3e314dd DO NOT MERGE: Add CTS test for CVE-2016-2429
d9e30f7 DO NOT MERGE Fixing layout of several test suites for round screens.
814b11b DO NOT MERGE Fixing layout of security, sensors & projection in CTS Verifier.
459d156 DO NOT MERGE Fixing layout of audio test suite for round screens.
9a551d7 Expanding the list view to be scrollable on watch.
f66ce3d Updating CTS Security Patch to 2017-04
210b89e [ITS] Enable non-debug mode to speed up tests.
2168ee3 Fixing test list issue on Device Owner Test, Go button in Device Administration test
5ac3162 Hidding DISALLOW_FUN test on watch since easter egg is not available
40c0fbd Fix MetadataReporter tests
7d589c6 Add a test configuration for output of metadata
5dc5b10 Configurable verifier suite name.
2110136 Wait for destoroying activities on EglConfigTest#testEglConfigs
e037774 Test: Skip testMuteDndAffectedStreams for tv platform
320f921 Increase timeout for EncoderTest, required for passing tests on watches
5ff0958 Add missing file
772b5dc CTS test for bug 33897722
473aa82 CTS test for bug 33897722
5b8a9f7 Backport MediaCodec-based test to StagefrighTest
d13a2e3 Revert "Configurable verifier suite name."
6ab6b54 Track test runtime
ff9017f Fix CTS test case for running on qHD platform
9b4f251 Remove trust agents test if platform has none.
58342ad DO NOT MERGE StagefrightTest: add test for OOB write in sonivox.
98f9674 Configurable verifier suite name.
6b08198 DO NOT MERGE: Cherry pick CTS test fixes from mr1.
6f3fba0 Change CTS Verifier suite name to CTS_VERIFIER to match processing in APFE. Report curent time instead of system uptime for report times.
96cfab6 Fixed EnumDevicesTest checking wrong variable
a175c5e Check that H.264 is available before checking max frame rate
1180e2e media: release extractor in DecoderTest.testTrackSelection
25a7312 Add supporting style files for CtsVerifier reports. Add utility functions for device-side result reporting.
3657102 Copy any additional files from the previous result after retry
04ab29f Fix "Disallow network reset" cannot found "Network reset" item
d51d14c Remove ResultHandlerTest from HostUnitTests.
7941f05 Disable DISALLOW_INSTALL_UNKNOWN_SOURCES, DISALLOW_CONFIG_CREDENTIALS tests on watches
0826bf1 Change CTS Verifier reporting to CTSv2 format.
87aba92 Re-word "Disallow USB File Transfer" manual test.
5c317a0 Lock screen orientation of CapturedActivity
9bffc71 Comment out BackupAccessibilityTest for further work
3ff85c8 Skip tests using dock if split window unsupported.
c4dd18f Increase arbitrary wait for boot.
eadf6f8 Add PropertyUtils to get first_api_level property
ee0e79f Cancel notification which is dispatched for a test
88e87c4 DO NOT MERGE Fallback to freeform windows if split screen not supported
943e5da DO NOT MERGE Improve parsing of "am stack list" in CTS drag and drop tests
68640bf more annonations
55ad56e Detect support in ActivityManagerDockedStackTests.
f092a5e Check support in AccessibilityWindowQueryTest.
9ebc151 CameraITS: add delta on saturation value for images
3f78150 Do not check isInMultiWindowMode in PIP mode tests.
1cf3c1d Move empty module handling to ModuleDef
db99b91 Fix dlopen failures for CtsSecurityTestCases and cleanup
8b0aed5 Fix additional UnsatisfiedLinkError for CtsSecurityTest
5284420 Add android.cts.device.lowram for libcore tests.
4909af2 Fix tts tests for devices w/o a preloaded TTS
ce1208a Include Wear device idle settings
9beafae Fixing DeviceAdminUninstallTest for watch
533642b CP: Screen on and stay on for GLES tests
9383cc3 Fix dlopen failures for CtsSecurityTestCases and cleanup
f4e5b39 Fix additional UnsatisfiedLinkError for CtsSecurityTest
109350a Fix AudioNativeTest for devices without stereo recording capability
d21387c Wrong log filter in TrustedVoiceHostTest#testUnlock
55250c8 DO NOT MERGE Fix CrossAppDragAndDropTests.
91e1658 Disable drag and drop tests on Wear
4ddab43 DO NOT MERGE: Skip "to side" test if not capable of multi-window or screen rotations
d37a845 Catch case where browser is protected by a permission
37e097e Added skip of android.host.retaildemo.DemoModeTest#testIsDemoUser_inDemoUser if device doesn't support multiple users
d1a8bc3 Skip shortcut backup CTS when device has no FEATURE_BACKUP
cf1c20e Skip BackupQuotaTest if FEATURE_BACKUP is not declared
504112d Added skip of android.backup.cts.BackupQuotaTest#testQuotaExceeded if LocalTransport is not present
e3e99db Fix failure due to accessibility node not updated after scrolling.
42f3cd3 Check SearchManager presence and state for disable of SearchManager tests
54b6dc1 Disable CTS test that needs multiWindow if not supported
fa05631 Removed assertion in testPerformGlobalActionRecents()
86c58d0 Disabled android.accessibilityservice.cts.AccessibilityEndToEndTest#testTypeNotificationStateChangedAccessibilityEvent for Wear
4a48ad4 CTS DecodeAccuracyTest: check available codecs before test run.
591c82b Exempt Watch from testPackageInstallUserRestrictions.
a96984b Force popup window theme to disable swipe-to-dismiss.
2dca38a Camera2: fix digital zoom test
ad8f575 Initial commit for cts-sts
a2174d0 CTS tests for popup window position after scrolling
6d7f0c8 Redefine compatibility test not_executed counts, improve setDone
a51ea3f CP MediaStress and MediaPreparer dynamic config changes to nougat
1d61144 Fix build, MediaPreparer unit tests
681b8f1 DO NOT MERGE StagefrightTest: add test for bug 32577290
01b10fd DO NOT MERGE Test for potential overflow in Visualizer effect
6b8bc32 DO NOT MERGE CTS Test for security vulnerability fix: Effect command might allow negative indexes
2ac9672 DO NOT MERGE: CTS Test for security vulnerability fix: Effect command might allow negative indexes
3c50012 DO NOT MERGE: test app must be streamed
1521c618 DO NOT MERGE: StagefrightTest: add test for bug 32577290
63558c8 DO NOT MERGE: Test for vorbis decoder bug
82a010b DO NOT MERGE: Updating CTS Security patch to 2017-01
272e86c DO NOT MERGE: StagefrightTest: add CTS test for bug 32322258
0b14570 DO NOT MERGE: CTS Test for security vulnerability fix: Effect command might allow negative indexes
5e06f45 DO NOT MERGE: CTS Test for security vulnerability fix: Equalizer command might allow negative indexes
fad4695 DO NOT MERGE: StagefrightTest: add test for bug 32577290
f7849e3 DO NOT MERGE: StagefrightTest: add CTS test for bug 32322258
e8dfea1 Revert "Create InvocationHistory that tracks results across session retries"
409661b DO NOT MERGE - add comments to indicate false-positive CTS 5.1 tests for Automotive devices.
b6c7eee DO NOT MERGE: After we merge the commit for CVE-2014-9675,we updated the FreeType to the version 2.6.2. But after this modification, when we run cts case: android.theme.cts.ThemeHostTest#testHoloThemes, there are many fails.
94b65e3 emulator: fix DPM security logging test
ec3aa96 [DO NOT MERGE] Adjust CTS to allow multiple toasts from foucsed app
e3c15b3 Set retry commandline args for all CTS shards
6151e8e DO NOT MERGE: Bump CTS and CTS Verifier to 7.1_r2
b87765b Do not serialize "null" for empty values in CTS reports.
e35f6cf Redefine compatibility test not_executed counts, improve setDone
43bc783 Create InvocationHistory that tracks results across session retries
894f7af DO NOT MERGE: Bump CTS and CTS Verifier to 7.0_r6
1100322 DO NOT MERGE: Bump CTS and CTS Verifier to 6.0_r15
2a17045 [ITS] correct tile areas. Tiles are relative.
7830e49 Disable - App links from the work side
44c245f Fix testGetWindowVisibleDisplayFrame in multiwindow mode
d62cb94 do_3a should only be used if supported by the camera
1ebccfb CameraITS scene5 only read_3a is supported
5ccab7b DO NOT MERGE Add comment for false-negative test on emulator
1ff0d2e DO NOT MERGE: Bump CTS and CTS Verifier to 5.1_r16
7b932b8 Only mark module "done" in absence of additional filtering on retry
e74dce0 CTS: skip wifi related net test if no such feature
d52ec60 CP MediaStress and MediaPreparer dynamic config changes to nougat
842d02a Do not turn Wifi off for sustained performance test
2cefbc6 Do not turn Wifi off for sustained performance test
ee6562f DO NOT MERGE: bump cts for 201703 security public bulletin
a77b576 DO NOT MERGE: bump cts for 201703 security public bulletin
6724fda DO NOT MERGE: bump cts for 201703 security public bulletin
e674434 Some High PoC CTS tests for December (10) Test: this is a test Change-Id: If68e2f868fb9debe0875a79fa94c62a6483688c0 (cherry picked from commit d8fe6172a8448969c7216f31be3e31ccc9370449)
4ed5d7a DO NOT MERGE: Relax the requirement of DirectBoot-aware IMEs
2729a4a Fix CustomPrintOptionsTest issues.
5ed7488 CTS Verifier, adjust UI in Device Owner Tests for watch
2e9a85f Add a CTS test for issue 33300701
841e61a Updating CTS Security Patch to 2017-03
7d7b780 LocationManagerTest runs on devices that don't have a GPS provider
7dff8ce Increase sustained performance test bar for Dhrystone from 10% to 15%
ffbd872 Test runs on devices that don't have a GPS provider
d8d4020 Add NativeClearKeySystemTest test. *DO NOT MERGE*
c61ac2f Merge of commit 91996d74 from nougat-cts-dev:
9a09bb0 Add mdpi and hdpi assets for theme cts.
1b1d20b Skip SHOW_MODE_HIDDEN test if IME has no window
cf4c64a Test for bug 33137046
3873e63 Update ApplicationTest for multi-window awareness
5494d51 Don't include ScreenPinning test on auto
e233451 Customize Device Suspend instruction for watches.
a136b40 Allow failing testUsbAccessory CTS test in some cases.
fb2c7c3 DO NOT MERGE CTS Test for security vulnerability fix: Equalizer command might allow negative indexes
8bdc693 Supply CTS/GTS precondition arguments to precondition preparers
ee5a122 DO NOT MERGE Improve parsing of "am stack list" in CTS drag and drop tests
56361d2 Opt UI_MODE_TYPE_TELEVISION out of SearchManagerTest
1b963fc 2 CTS test for January bulletin Critical
dc76200 Security Patch Tests for critical bugs October 2016
6bf9abd DO NOT MERGE Improve parsing of "am stack list" in CTS drag and drop tests
a8dc7d1 Opt UI_MODE_TYPE_TELEVISION out of SearchManagerTest
576904f Backport MediaCodec-based test to StagefrighTest
ec0328c Commit for some of the critical bugs in December 20016
97bc3d3 Backport MediaCodec-based test to StagefrighTest
126fc37 DO NOT MERGE: CTS Test for security vulnerability fix: Equalizer command might allow negative indexes
926d43e DO NOT MERGE: Updating CTS Security patch to 2017-01
858887b Disable part of CTS that relies on non-public strings
bf7eb9b Log output of adb shell am output in CrossAppDragAndDropTests
9626456 Log output of adb shell am output in CrossAppDragAndDropTests
af0f5a8 Minimal commit for security test patches
3809ec6 Add CTS test for CVE_2016_2463
1ddb568 DO NOT MERGE Initial hostside commit for CVE-2016-8430 b/32225180
35f6127 Add testOnReceivedLoginRequest to WebViewClientTest in mnc-dev
d9d70aa Temporary workaround for webview render delay
419c8b0 Backport MediaCodec-based test to StagefrighTest
ea41e40 Backport MediaCodec-based test to StagefrighTest
051b570 Add dismiss keyguard flag to fix disableScreenCapture test
739bdc2 Reland WebViewClientTest testOnReceivedLoginRequest test fix
f8ef9a3 Fix a thread safe issue where GnssMeasurementsEvent event list returned by the listener can be modified by other concurrent thread
48850d1 Revert "resolve merge conflicts of 2537ffdefc to marshmallow-cts-dev"
d6e5227 heck USB Host feature on Audio Frequency Unprocessed Test
32908a5 DO NOT MERGE: Removing test for audio source unprocessed
eadff71 Let the first frame come in before measuring refresh rate time.
d64ff85 Wait for MediaPlayer.release before continuing
2537ffd Fix testOnReceivedLoginRequest assertion error bug
b9e35be Remove Sample tests
37c5d22 Add summary xml file to CTS results output
a6644df Remove Sample tests
0f9ceac Use getLocationOnScreen to compute verification bitmap offset
8101d4c Add AudioSecurityTest
e36fc2d Fix Accessibility CTS: testFindByText in freeform mode
b0c4c78 Wait for MediaPlayer.release before continuing
96b35bb CTS test for mock location exploit
1f5438b Disable Select/Confirm work lock tests
5b2113c Camera ITS: select smaller image if size is > 12M
3524f06 DO NOT MERGE - Disable ListeningPortsTest
1d5591f DO NOT MERGE: Bump CTS and CTS Verifier to 7.0_r5
5b8daaa DO NOT MERGE: Add sustained performance test results warning
90c13ac DO NOT MERGE: Add more filtering logic for CtsDeqpTestCases on retry
90444df DO NOT MERGE: Exclude individual CtsDeqpTestCases tests on retry
a98feee DO NOT MERGE: Generate and include checksum data with CTS report submissions Test: Used exploratory tests and unit tests in ChecksumReporterTest.java to verify the behavior. * All TestResults are added from an InvocationResult * Able to verify TestResult against previously calculated checksum * CRCs are created for all files in a directory including subdirectories * Checksum integrity is maintained while serializing to/from disk * When possible checksum data is compressed before report submission
4b6a2d5 DO NOT MERGE: Remove shortname for result-type in SubPlanCreator
d9f18d6 DO NOT MERGE: Don't used removed shortname in SubPlanCreatorTest
931810c DO NOT MERGE: Remove shortname for session-id in SubPlanCreator
f5c81c3 DO NOT MERGE: Mark optional tests which only passes on Android 7.1.1 (but fail on 7.1)
bb061df DO NOT MERGE: delete file when don't support 3gp Bug:30545980
7e2745e DO NOT MERGE disable the gnss status test until the builds are ready
9800b94 DO NOT MERGE Fix second dialog CTS issues to be more generic
cf91d29 DO NOT MERGE: Camera2: RecordingTest: Enforce frame drop test only on non-LEGACY
60cc4b6 DO NOT MERGE: CameraITS: do not create a key that doesn't exist
669d0f5 DO NOT MERGE: CameraITS: fix key error
0fea16d Fixing the test as per GMS 7.0R4 requirements
45ee6c5 DO NOT MERGE: Bump CTS and CTS Verifier to 6.0_r14
c130f51 DO NOT MERGE: Bump CTS and CTS Verifier to 5.1_r15
f0564c9 Increase the timeout for dpm.removeActiveAdmin().
d83c578 Fix domains in domain-config test
0a27f9d Increase sustained performance test bar for Dhrystone from 10% to 15%
82ff4d6 Test: Add testClearFormData to lollipop-mr1-cts-dev
f5f94cc Test: Add testOnReceivedLoginRequest to WebViewClientTest in lollipop-mr1-cts-dev
9b7d6c8 Fix CTS Media Utils, change MediaPreparer default max resolution
41c6616 Allow bluetooth service to access bluetooth directory and add /logs (1/14)
939f049 DO NOT MERGE: Added test_required_features for AppWidgetServiceImpl Test
ecb6568 DO NOT MERGE: Updating CTS Security Patch Month to 12 for Dec 2016
de9bab5 DO NOT MERGE: CTS to test service binders accessibility from isolated processes
886618c DO NOT MERGE: Updating CTS Security Patch Month to 12 for Dec 2016
00c543d DO NOT MERGE: Add test to ensure media stack has no sticky SSLv3 fallback DO NOT MERGE
e2462c8 Enable wifi before device policy wifi tests start.
5b64fbb Bug #225396 Add hdpi.zip for theme test
31f6c84 CTS: change resource file on hdpi density
6bdfe0c Remove shortname for result-type in SubPlanCreator
216e28d Don't used removed shortname in SubPlanCreatorTest
5175db0 Remove shortname for session-id in SubPlanCreator
97f197e CTS: Sensor - Correct FrequencyVerificationTest Pass Range
cd84f30 Remove apk test until I figure out why it is failing
00168f1 Add sustained performance test results warning
2c7e517 NEW-CTS: test for SecurityLog.SecurityEvent
e594ddb Fix ClearKeySystemTest fails Wifi connection test in emulator.
e685a91 Fix ClearKeySystemTest fails Wifi connection test in emulator.
7b79276 Update multi-launch tests to support watch.
72e4426 OpenGlEsVersionTest: require features to exactly match capabilities
737f44a Fix MediaRecorderTest#testRecordAudioFromAudioSourceUnprocessed
38a7ea1 Description:We use finalview.post in ondraw method,when this message can not be excuted quickly in the message queue, the ondraw() will be called more than once and get some more finalview.post message, That will lead to DrawWaiter.waitForDrawComplete() invalid in android.widget.cts.ListViewTest test case. Bug:33159262
f4a5dcb Force popup window theme to disable swipe-to-dismiss.
872eaa1 Revert "Force popup window theme to disable swipe-to-dismiss."
3c6d6d5 DO NOT MERGE Mark optional tests which only passes on Android 7.1.1 (but fail on 7.1)
34ee3cd DO NOT MERGE ANYWHERE: bump cts for 201702 security public bulletin
f616ee2 DO NOT MERGE ANYWHERE: bump cts for 201702 security public bulletin
8546aba DO NOT MERGE ANYWHERE: bump cts for 201702 security public bulletin
a492358 Updating CTS Security Patch to 2017-02
9af59f1 Force popup window theme to disable swipe-to-dismiss.
fe79bbb Initial commit for root hostside adb tests.
6446a95 delete file when don't support 3gp Bug:30545980
fb8f3bf Don't check HMAC keys smaller than 64 bits.
0654d7f DO NOT MERGE Mark optional tests which only passes on Android 7.1.1 (but fail on 7.1)
eb843b9 disable the gnss status test until the builds are ready
b15da1e Use device APIs to determine max resolution for MediaPreparer
9f7b1ff Fix second dialog CTS issues to be more generic
6fa9a88 Add test for security bug 32873375
74ff45a Fix for location test ConcurrentModificationException issue
6d4fae0 Don't GetIntegerv with 0 length arrays
43eb411 Uninstall devicepolicy test packages
0d2df63 Fix ClearKeySystemTest fails Wifi connection test in emulator.
17520f7 Add more filtering logic for CtsDeqpTestCases on retry
b86c351 Skip BackupQuotaTest if FEATURE_BACKUP is not declared
d560f77 Add 360dpi.zip for theme test
5541e42 Parse module runtime as long in ResultHandler
b7d1335 DO NOT MERGE: Revert "Updating CTS Security patch to 2017-01"
1983cf1 Prompt for mode setting only if setting is available
e3d1cc3 CTS Test for security vulnerability fix: potential OOB write in audioserver
930b76c [CTS Verifier] Test "Wi-Fi Data Usage Settings Visible" only if the device has Wi-Fi
cec3c64 Exclude individual CtsDeqpTestCases tests on retry
a8f267c DO NOT MERGE: remove 2 hammerhead knownfailures (fixes are in)
bc70c51 Test for bug 32915871
195aed2 Fix build breakage by removing duplicate definition of GNSS_NAVIGATION_MESSAGE_TYPE.
b0e9f55 Add tvdpi images for theme test
d1aaeda Increase card sizes to reduce workload on scroll
f627500 NEW-CTS: Adding tests for new NetworkStatsManager APIs in N
8cdf017 CTSVerifier test for Unprocessed
40364ab Fix testCameraManagerCameraCharacteristics
3ad9236 DO NOT MERGE CTS Platform Version Verification
a7f3001 Fix com.android.cts.devicepolicy.MixedDeviceOwnerTest#testPackageInstallUserRestrictions
21df9aa Revert "Apply requested DRM info test changes"
2dee49c Fixed CTS unit tests
e5f4b61 Adjust ProjectionWidgetActivity layout to be more like ProjectionListActivity, allowing it to work better on tiny screens
381d865 Remove trust agents test if platform has none.
7ab68a1 Fix TextView fading edge test
41af367 Fixing layout of several test suites for round screens.
a25bf22 Fix test case context which is not fully visible on wear.
27ac566 Bug Id:32895359 Description:modify for AssistStructureTest
4643ab6 Fix build for nyc-dr1-dev
75b19f9 Check that H.264 is available before checking max frame rate
59975eb Use defined NavigationMessage types
8ff042f Fix CTS GPS verifier false failure
17930a2 Fix wrong variable name in permission tests
352e89c Fix CTS GPS test false failure
88eccc0 Fix AlarmIntentTest layout
c6f25a3 DO NOT MERGE: Bump CTS and CTS Verifier to 5.1_r14
8a7001e DO NOT MERGE: Bump CTS and CTS Verifier to 6.0_r13
9d747a2 Run DynamicConfig setup twice
d821b37 DO NOT MERGE: Bump CTS and CTS Verifier to 7.0_r4
2ff4245 Fix UserRestrictionsTest.testUserRestrictions_secondaryProfileOwnerOnly
fd80f4e Generate and include checksum data with CTS report submissions Test: Used exploratory tests and unit tests in ChecksumReporterTest.java to verify the behavior. * All TestResults are added from an InvocationResult * Able to verify TestResult against previously calculated checksum * CRCs are created for all files in a directory including subdirectories * Checksum integrity is maintained while serializing to/from disk * When possible checksum data is compressed before report submission
729c472 Add retry logic for adoptable storage tests
f709f2d Catch case where browser is protected by a permission
734ac0f Fix failure due to accessibility node not updated after scrolling.
fee83df CTS DecodeAccuracyTest: check available codecs before test run.
11a3fe7 Fix DO/PO Wifi CTS
69c7354 Test: Fix testFindAll result listener not set issue
327c13b Updating CTS Security patch to 2017-01
ff8bfe9 DO NOT MERGE ANYWHERE: bump cts for 201701 security public bulletin
0ec2afa DO NOT MERGE ANYWHERE: bump cts for 201701 security public bulletin
be7b7ae CTS Test for security vulnerability fix: Effect command might allow negative indexes
38271e4 CTS Test for security vulnerability fix: Effect command might allow negative indexes
c3c7ece Fix for testFreeformWindowManagementSupport
5e8c5ec Increase timeout for EncoderTest, required for passing tests on watches
91996d7 Fix activity & window manager tests on emulator
7374ddf media: log reported frame rates for media dashboard
7b71d9b Test for vorbis decoder bug
605b8f4 CTS Test for security vulnerability fix: Equalizer command might allow negative indexes
726a898 Add runtime-hint for CTS media and mediastress modules
d55adc4 Add runtimes when parsing results in ResultHandler
66cc63a Remove shortname for result-type in SubPlanCreator
0b8bed4 PlayVideoActivity: update comments for ENABLE_PASS_DELAY
c705f34 streamquality: reduce ENABLE_PASS_DELAY to 5 seconds
49b45f0 DO NOT MERGE: Updating CTS Security Patch Month to "11" for November 2016
a39fd4c media: release extractor in DecoderTest.testTrackSelection
f8d51d7 Removed assertion in testPerformGlobalActionRecents()
dfddcd3 Don't clear the restriction after every test item.
3816bed Fix StagefrightTest
1fa31a4 StagefrightTest: add test for bug 32577290
789f373 Change test number to be 7 digits instead of 5
5d6bbff StagefrightTest: add CTS test for bug 32322258
21d2b0f Check SearchManager presence and state for disable of SearchManager tests
68e3a1f AnimatorInflaterTest should not rotate square screens.
e63db3b Fixing couple issues DO NOT MERGE
d7df6ba Update policy transparency test instructions.
34db2a9 Reset the policy when the switch is turned off.
a31bbcb Revert "Disable some CTS tests for watches."
81ce8a8 Fixing layout of several test suites for round screens. DO NOT MERGE
5f30e43 Disable unsupported test items for DO as well.
643c7be CTS: clear notification when testPerformGlobalActionQuickSettings is done
b396aaf Use AutoCloseInputStream in BackupQuotaTest
c54487a Disable unsupported test items under policy transparency tests.
1fe1a58 Include Wear device idle settings
a0774a1 Don't used removed shortname in SubPlanCreatorTest
5fab1d6 Fixed EnumDevicesTest checking wrong variable
3f596f9 Reformat CTS MediaStress Dynamic Config Keys
0484750 Revert "DO NOT MERGE: Add CTS For bug - 13225149"
902ecb4 DO NOT MERGE: CameraITS: add delta on saturation value for images
6d72c23 Remove shortname for session-id in SubPlanCreator
0442a67 Fix selector in XSLT
883c729 Include Wear device idle settings
a5c4752 Remove obsolete SUID File Scanner CTS Verifier test
7bda7c3 CTS Test for security vulnerability fix: Equalizer command might allow negative indexes
db5899c Fixing layout of security, sensors & projection in CTS Verifier.
5fd215d Fix AudioNativeTest for devices without stereo recording capability
c287597 Fix tts tests for devices w/o a preloaded TTS
a596c33 Devices may not support Direct Boot emulation.
f969661 Fixing layout of audio test suite for round screens.
8d09feb Exempt Watch from testPackageInstallUserRestrictions.
755df75 Fix testIsPresent when there is no geocoder package.
f4ed8c3 Disable CTS test that needs multiWindow if not supported
a91c65c Disable drag and drop tests on devices without multi-window support.
40f5b78 Add android.cts.device.lowram for libcore tests.
89cbc1b Re-word "Disallow USB File Transfer" manual test.
53fbd8c Camera: cleanup RS cache in tight loop
8fc93f7 Fix second dialog CTS issues to be more generic
bd09c9a Continuously #checkCanOpenCamera until camera policy has been enforced
62ea0b4 DO NOT MERGE: Skip "to side" test if not capable of multi-window or screen rotations
8694b14 ExifInterfaceTest: Catch IOException
9e2cbdd Fix CtsAadbHostTestCases#testSyncFiles_extStorageVariable
132d055 Run Dynamic Config Preparers before preconditions
6bc2b40 Fix for build breakage.
fe18bf1 disable the gnss status test until the builds are ready
f2b64a1 Fix android.os.cts.SeccompTest for Nougat on i386 and x86_64.
444e091 Add Nougat MR2 (7.1.2) to EXPECTED_RELEASES
8613f9b MediaPlayerStressTest: get MediaFormat from config instead of media files
20fc15a CameraITS: fix key error
db17612 DO NOT MERGE: disable tests that fail on some devices (Hammerhead)
5eba429 Add confirm dialog before clearing CtsVerifier test results.
14afdcf Allow failing testUsbAccessory CTS test in some cases.
74802bc Revert "CTS: check cpu currents are initialized in the device tree."
bb451bb Fixing DeviceAdminUninstallTest for watch
192d3d4 Removed BLE RPA timeout check
ef57d13 fix android.graphics2#android.graphics2.cts.TextureViewTest#testTextureViewActivity for TV
b590074 Fix FrameMetrics testReceiveData() flakiness
e64a748 Fix CTS wifi toggle test Related to bug: 31050764
aaa2124 DO NOT MERGE: CameraITS: do not create a key that doesn't exist
6c59c81 Improve timeout methods in DecodeAccuracyTest.
5124b35 Camera2: RecordingTest: Enforce frame drop test only on non-LEGACY
37d88c4 Fix AudioNativeTest for Android Wear
14475f7 fix android.hardware.camera2.cts.CameraManagerTest#testManagerGetDeviceIdList for TV
be2b17c Don't include ScreenPinning test on auto
77f169c Test: fix WebView testFindNext flakyness
0bafa55 Added skip of android.host.retaildemo.DemoModeTest#testIsDemoUser_inDemoUser if device doesn't support multiple users
49aaf2e Fix TransparencyTestActivity crash
edd139b Added skip of android.backup.cts.BackupQuotaTest#testQuotaExceeded if LocalTransport is not present
3ffe0da Add CTS test for CVE-2016-2429
e25b8d3 DO NOT MERGE CTS to test service binders accessibility from isolated processes
fde243c DO NOT MERGE CTS to test service binders accessibility from isolated processes
b9d0b52 Don't fail the .GnssNavigationMessageTest#testGnssNavigationMessageMandatoryFieldRanges test if it is run as part of the CTS automation run, only fail it if it is run as a CtsVerifier test
83bad69 CTS to test service binders accessibility from isolated processes
ace59b0 DO NOT MERGE CTS to test service binders accessibility from isolated processes
d4d4ab6 Remove unnecessary waitForIdleSync
78fe2c6 Look for matching dynamic sensor on reconnect
05f2f85 Skip shortcut backup CTS when device has no FEATURE_BACKUP
30dc646 Remove "only if" part of managed provisioning test
d4804f7 [device owner] result_canceled counts as vpn restricted
b1ae0e1 AdaptivePlaybackTest: dequeue more output buffers at the end.
a828442 Fix for testManagedContactsPolicies
3533de9 delete file when don't support 3gp Bug:30545980
a5aa60d Fix build
a0d057b update get_achievable_rates for CTS v2 and N
90e8e2a Allow last item to overlap prompt in testPromptViewBelow()
931bb65 Add CTS test for CVE_2016_2463 This test verifies whether a mp4 file limits the memory usage during decode media
0aaf075 DO NOT MERGE Fix CrossAppDragAndDropTests.
5b2aaf7 Change the video file in MediaStore_Video_ThumbnailsTest.
be21d5c Fix tts tests for Android Wear.
6f5e793 Fix test case context which is not fully visible on wear.
e2cc635 Test for potential overflow in Visualizer effect
ef5ef29 Fixing layout of security, sensors & projection in CTS Verifier.
401fbc8 Fixing layout of several test suites for round screens.
864ba0c Fixing layout of audio test suite for round screens.
748ef71 Remove WebView startup StrictMode CTS test and add NullWebView check
c49577f Disable some CTS tests for watches.
bd18627 Disable drag and drop tests on Wear
bec6722 CTS: Fix issue with StaticMetadataTest#testCapabilities
b808f74 upport the #testAppLinks for the device which implemented browsers
aa66161 Check bluetooth support when testing "Disable NFC beam"
91f008a Fixed testPinchOut to calculate expected touch down points correctly.
ecb44f2 [DO NOT MERGE] CTS test for FreeType update to 2.6.2
a2728dd Add a CTS test for FreeType update to 2.6.2+update
project dalvik/
6354515 Backport changes to whitelist sockets opened by the zygote.
project developers/build/
cfef233 Add ability to use support library for vector drawables
a9a842c Update sample prebults for 2017-02 release (nyc-mr1-dev)
29c609a Updates support library for 2.0 launch and adds provided gradle requirement for all wear samples.
2cce381 Unrevert "Revert "Updating prebuilts for 2016-12 samples release""
b50264e Revert "Add deprecation notice to README files for samples"
a459ec3 Revert "Updating prebuilts for 2016-12 samples release"
0c7140e Updating prebuilts for 2016-12 samples release
79f3f32 Update dependency versions for 2016-12 release
4c2765d Update build tools version for N MR1 samples
3e5b6fd Add deprecation notice to README files for samples
project developers/samples/android/
6f3586b Update BasicKeyStore sample for new keystore APIs.
9bc28e3 Fixes xml node name to issue tracker resolves.
3962962 Part 3 - Updates wear samples for Wear 2.0 launch (fixes minor issues too from using latest support library) .
a89d0cd Part 2 - Updates wear samples for Wear 2.0 launch (fixes minor issues too from using latest support library) .
4088e40 Updates wear samples for Wear 2.0 launch (fixes minor issues too from using latest support library) Part 1.
559783e EffectiveNavigation: Revive an old sample
4067f65 Adds clarification text to intro to help developers run the watch face sample the first time and understand auth for fit.
9804ffa Small fixes for AppRestriction samples.
58a2ae8 Adds support for opening iOS phone app from wear and clearer message for Phone app to wear app failure to open play store, i.e., the wear device is 1.0 without the play store.
df833a2 Update XYZ to work again since several maps classes moved around.
14260ba PermissionRequest: Only handle video capture
fdff048 Lint fixes for AppRestrictions sample.
b8f046b PermissionRequest: Several updates
9429c19 Small lint fixes for FingerprintDialog sample.
6b36f3f Fix lint issues in AsymmetricFingerprintDialog sample.
5e8b90d Updated NetworkConnect to not leak Activity in AsyncTask. Also: * Persist through config changes. * Fixed LINT errors. * Refactored and removed unused code. * Switched to TextView instead of Log fragment. * Switched to HTTPS connection. * Check for connectivity before network request.
7b6e65d Work around an issue with aapt
ae9c44a BluetoothChat: Clean up code
07d1034 Fix link in README.md
6a3afe1 Various updates and fixes
accbabf Corrected typo in word device
46ecdfb remove references to Android L preview in CardView sample
861586d Fix CommitContent samples
6275099 Clarified the length of time that a device is discoverable
20238ad Update dependency versions for 2016-12 release
9dd464c Add new samples to master build.gradle
5953554 Adds text to template xml and screenshots.
cca67a3 Create template version of WearHighBandwidthNetworking for first pass review by ENG.
340c10a Update remote verify sample to use beta1 library.
967e652 Add template description, screenshots, etc. for sample.
c45c0c2 Wear side app to check if phone app is installed. If not, opens play store on phone. Also includes template stuff to start project.
3cdb494 Phone side to verify if app is install on wear devices. If not, opens up play store on those wear devices.
1a24e2a Avoids leaks and major revamp of the JobScheduler sample
8ad9d23 Fix DirectBoot sample.
ca81422 Adds modern tabs, removes tests
9dfb11b Fixes count bug and lint warnings
ec76529 Fix lint warnings.
3f3d37e Swap out dropdown with WearableRecyclerView.
52879b0 Update build tools version for N MR1 samples
project development/
49453c6 Increment package revision for 2017-02 samples release
8a66f8c Update sample prebults for 2017-02 release (nyc-mr1-dev)
f22b170 samples: Update sdk.atree for nyc-mr1-dev
3468e63 Update the Notepad sample app to: 1. Show that any application state should be saved in onStop() versus onPause(). 2. Remove the deprecated methods and start using CursorLoader instead of any managedQuery. 3. Remove deprecated LiveFolders usage.
a70cf63 Add runner to run frameworks-telephony tests
project device/asus/fugu/
5db03cd fugu: stop dex preopt'ing
5606e36 Support AUDIO_SOURCE_REMOTE_SUBMIX use case
ea43193 update media_codecs_performance.xml
06af030 dexpreopt: make significantly more room for l10n builds
0b15636 dexpreopt: trim more fat
project device/generic/goldfish/
3aee924 Add Input Device Configuration for rotary input.
b4e6cf1 Add /dev/goldfish_sync to ueventd.ranchu.rc
project device/google/contexthub/
c77d0b6 Add support for detecting old unpublished AR events to discard them
c9878ba Adds a lock to the flush() method of the AR HAL
ba7c07d bmi160: Set the min_step_buf to 2 for sensitive mode
2b95fe5 [DO NOT MERGE ANYWHERE] Update magnetometer calibration parameters
e722b91 Quick fix to set correct temperature sensor type
a107817 hostIntf: properly handle hardware that fails to initialize
b6e5f65 Update magnetometer calibration parameters
b2a6210 synaptics_s3708: Poll interrupt after arming LPWG
58691fd sensorhal: don't process data beyond the end of the buffer
37699ba hostIntf: disable wdt when verifying os signature
affb06f bmi160: add support for sensitive step counting mode
d136cca sensors: add support for an ungaze sensor
01d6f82 nanohubCommand: call appSecRxDataOver to verify signature
dd0f5c9 hostIntf: unload all external apps before erasing the shared area
ba7f5d6 sensorhal: add support for a GAZE sensor
cf10b66 libm: add support for expf
7309aad DO NOT MERGE: nanohub: fix the app flash base address in the log
b92d3ae sensorhal: add a short delay between flushes, log errors
7103675 contexthubhal: log the error returned by poll
a159cda sensType: add AR raw event.
9568e8d activityhal: support separate sensors for activity start/stop
project device/google/dragon/
b05e4f3 Dragon: update opengl version
554bda3 DO NOT MERGE: Use Files icon in launcher.
269fa0b Initialize the pcm_config struct before pcm_open.
8f104ab Update BoardConfigPartial,device-partial.mk files template
7835bc7 Allow bluetooth service to access bluetooth directory and add /logs (5/14)
9b3f0a5 sysui: remove overlay assets and dimens
808c4a3 sysui: remove deprecated dimens
project device/google/marlin/
5f725e5 DTAG: Use hos apn for supl with bearer 18
37c2ff3 DTAT: Combine internet.telekom apn.
6eea584 Telus: Add tethering apn back.
066e189 apns: hide telus ims apn
9a9800b RJIO: Change Roaming protocal to IPV4V6.
27a2df0 DTAG: Change ia APN from empty to internet.telekom
d908513 DTAG: Add HOS APN for IWLAN (bearer 18) MMS.
e29680b Rogers: Hide IMS apn from UI.
a955645 racoon: Add SIOCSIFNETMASK
4b51bb9 DTAG: Use "WLAN call" instead of "Wi-Fi Calling" in SPN and Setting.
fffd6c5 DTAG: Set default APN protocol type as "IPV4V6".
3ab6a38 lights: Allow changing brightness when in low-persistence mode.
d03d1ba Enable TelephonyMonitor
da6d5dc DO NOT MERGE Revert "Marlin/Sailfish: customize bad WiFi RSSI values"
b05c899 sepolicy: Allow RamdumpUploader to write to /data/ramdump
53cce0c marlin/sailfish: Disable RPS
f625ca5 cameraserver: add socket read permission
baec06a marlin: Add permission to camera
a487fc4 Fix incorrect gid for Telus or Koodo.
b646634 marlin: Adjust init timing for rtel. Let ramdump_rtel is created before subsystem_ramdump is running.
7d35610 marlin: audio: Update volume level of volume listener (1007)
06afb53 Update SKIN_THROTTLING_THRESHOLD to a real value
0bc0349 Add policy for camera/cameraserver
f860807 DO NOT MERGE place RIL, netmgr, and smlog into bugreport.
17a6aec DO NOT MERGE spn-conf: set WFC SPN for Rogers and Fido
bce1569 Create new data node /data/misc/netmgr
8360fa2 apns-full-conf: add IMS apns for CA carriers
e8ea1d1 marlin: audio: Update volume level of volume listener (1007)
560a4a4 Allow bluetooth service to access bluetooth directory and add /logs (6/14)
b8ac634 Marlin/Sailfish: Set gInformBssRssiRaw to 0
1d81cfc Signal M/S support for AUDIO_SOURCE_UNPROCESSED
a77c496 Marlin/Sailfish: customize bad WiFi RSSI values
6bdfdc8 Allow subsystem restart tracker access in user builds
aacaad7 DO NOT MERGE. Remove Spaces in front of APN Types
5b29a0c Remove Spaces in front of APN Types
55c5c84 O2UK, O2 Pay & Go, TESCO, giffgaff: APN change.
d2d3143 Use bearer instead of bearer_bitmask to avoid merging APNs.
cdde9de Add APN Settings for UK MVNO Jump.co.uk (Dual-IMSI MCC/MNC)
4efc137 Added Rebtel APN settings to conf file
764719f apns-full-conf: add IMS apns for Bell 302/630
47b512a apns: update RJIO APNs
cd12e7b sepolicy: Allow platform_app to access /data/ramdump
bc52cf6 spn-conf: add spn override for DTAG
3c3b224 apns-full-conf: add IMS apn for Bell CA
ae74857 Delete smlog files left in /data
96c889f TMO: Use fast.t.mobile.com for Initial Attach.
8109281 marlin/sailfish: Enable Fast bss transition config
58e0996 Remove librilqmiservices.so from the blobs list
4e17673 sepolicy: grant thermal-engine sys_boot
ed27904 Add a thermal shutdown to marlin
d12cf2e Race condition fix in powerHAL
bb45633 spn-conf: add spn override for RJIO
a31147e marlin: fs tune for boot time optimization
2d2b22c Update power profile of marlin and sailfish with machine learned values.
e59e46a DO NOT MERGE. Add modem logs to the bugreport
project device/htc/flounder/
88c3acd flounder: limit dex2oat to one thread
4c4bf96 gts: ro.product.first_api_level needs to be set to L (23)
f2a049a ARM: tegra: flounder: update lates gps HAL 65.19.20.279807_47521
715a993 Allow bluetooth service to access bluetooth directory and add /logs (9/14)
500d293 Fix security issue in Visualizer effect
project device/huawei/angler/
7573357 QCamera3: check channel nullptr
daa33ed angler: usb: Signal the usb stack to adjust the delay for USB port detection [ DO NOT MERGE ]
05e137c angler: add first_api_level property
b76cd94 angler: apns-full-conf: Modify some wrong apns.
de1a410 angler: apns-full-conf: Modify some wrong apns.
b69fff0 angler: add first_api_level property
ed5f9b3 angler: fix selinux policy for fingerprintd
1f016ec angler: fingerprint: update to SW20
6aed25f angler: overlay: Enable fingerprint swipe gesture
cbdd3c6 angler: fingerprint: update to SW20
031c90e angler: overlay: Enable fingerprint swipe gesture
c2c7bbc Enable qcril db in angler
0c22ba9 Update BoardConfigPartial,device-partial.mk files template
2641bd4 QCamera2: HAL3: Use monotonic timestamp for pthread_cond_timedwait
43d055f Use bearer instead of bearer_bitmask to avoid merging APNs.
5e4ceaf cpufreq: limit cpufreq in recovery
0109a6c angler: apns-full-conf: Add apns for another plmn(44051) of KDDI in Japan.
project device/lge/bullhead/
49d31d2 QCamera3: check channel nullptr
a1473ce bullhead: add first_api_level property
5c566da bullhead: add first_api_level property
9716010 Update BoardConfigPartial,device-partial.mk files template
a260c90 QCamera2: HAL3: Use monotonic timestamp for pthread_cond_timedwait
dfd5ba1 bullhead: only build vendor/ code when non-aosp
b280e1c bullhead: overlay: Enable fingerprint swipe gesture
dc14c70 bullhead: support fingerprint SW20.6
e399813 Use bearer instead of bearer_bitmask to avoid merging APNs.
dd28d3b cpufreq: limit cpufreq in recovery
project device/moto/shamu/
d6ebd77 shamu: add first_api_level property
bd6ca81 Revert "Revert "Revert "Path fix for backend connection to FE upon call disconnection"""
9388a72 Revert "audio: fix headset + speaker path"
9957146 shamu: add first_api_level property
929cd03 Allow bluetooth service to access bluetooth directory and add /logs (10/14)
1c88540 Import translations. DO NOT MERGE
161ffb5 audio: fix headset + speaker path
project device/sample/
11e8476 DTAG: Change ia APN from empty to internet.telekom
19024f0 DTAG: Add HOS APN for IWLAN (bearer 18) MMS.
9b0156e Use bearer instead of bearer_bitmask to avoid merging APNs.
19cf3c5 Use fast.t.mobile.com for Initial Attach.
project docs/source.android.com/
7d4ec4d Remove ro.zygote.disable_gl_preload description
project external/aac/
97a1b81 Fix aacDecoder_drcExtractAndMap()
project external/android-mock/
c58f516 Delete some pointless and invalid code.
41cc67f Delete some pointless and invalid code.
46fe5f8 host modules don't need LOCAL_MODULE_TAGS
40bb738 Update AndroidMock with version that supports SDK 9.
f94b49e Add Notice and Module license
8da3e6e Add android-mock to external
f80b03e Initial empty repository
project external/apache-harmony/
3127958 Test class prepare event from the debugger
project external/boringssl/
7a342e9 Rewrite BN_bn2dec.
29b92ab Rewrite BN_bn2dec.
8c2c80c Rewrite BN_bn2dec.
project external/chromium-webview/
591955f WebView AOSP Integration Request - 52.0.2743.100
project external/conscrypt/
3209baf Fix typo in name of des-ede mapping
0af37f8 Fix typo in name of des-ede mapping
project external/deqp/
6bc3c7a Limit changes by xor to upper 8 bits in mixed atomic tests
5e86333 x11: Fix deadlock
5d11c9d x11: Call XInitThreads()
263e135 CP: Remove two read-backs from copy image tests
7aff1a0 CP: Non-compressed copy image target size (64,64,8
267c765 Remove tests affected by NV/OES_viewport_array extension
975a59e Generate flat triangles in polygon offset tests.
625d685 Drop incorrect framebuffer texture subtests.
ba45591 Relax line width verification in primitive bbox tests
1614827 Optimize swapchain OOM tests
2ed3a5a Fix internal format/type for ES3 3D + depth/stencil negative API tests.
09784f8 Fix eglBindAPI negative test
521bf8a Add support for EGL_EXT_pixel_format_float
302bd7c DO NOT MERGE: Remove changed texel buffer access tests from mustpass
09e8b66 DO NOT MERGE: Remove a few changed Vulkan tests from mustpass
cc80496 Add runtime to CtsDeqpTestCases
4af0452 Fix internal format/type for 3D + depth/stencil negative API tests.
b26bba4 Fix sample_mask_in.bit_count_per_two_samples tests for 2x MSAA.
b81edb4 Blacklist match_different_[member_]struct_names SSO validation tests.
dbf9715 GetDevices: Also allow `\.` to be part of the host name
b0ce1f0 Update glslang to d02dc5d
ef29b77 Cherry-pick SPIR-V ClipDistance validation fixes
e71e3bb Cherry-pick dEQP-VK.pipeline.cache fixes to nougat-cts-dev
a428365 Change GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS minmax to 2048
bf0076a Add runtime to CtsDeqpTestCases
ea5589c Fix sample_mask_in.bit_count_per_two_samples tests for 2x MSAA.
d2f3b46 Fix internal format/type for 3D + depth/stencil negative API tests.
4ccc9fd Add the support to device connection via TCP/IP
project external/doclava/
50e7541 Add support for MathJax in javadocs bug: 32935028
project external/embunit/
336b7c6 Add missing NOTICE files.
f5eb8b0 Get rid of warnings when compiled with -Wformat-security
bbee2f7 Add an empty CleanSpec.mk
83b2dd8 android-2.1_r1 snapshot
0bea8c4 auto import from //depot/cupcake/@135843
00ed02a auto import from //depot/cupcake/@135843
225a862 Code drop from //branches/cupcake/...@124589
project external/flac/
83a817d src/libFLAC/stream_decoder.c : Fix NULL de-reference.
project external/icu/
0f5b8ca Fix @links in icu.
76715e0 DO NOT MERGE: Update timezone data to 2016j
2d6bdb9 DO NOT MERGE : Update timezone data to 2016i.
a7cdbdb DO NOT MERGE : Snap ICU timezone-related .txt files to latest
8f84f7d DO NOT MERGE : Update timezone data to 2016h.
06ec6d9 docs: Fixing bad unicode sequence in Javadocs.
project external/ims/
2605a94 Sync mobile data status to modem on device bootup
project external/ipsec-tools/
25e4998 Moved add_proposal() for SHA2_512
12fee5f Add support for SHA384 and SHA512, depref SHA256.
a7ed60e VPN reconnection fails after manually disabling VPN
6613a82 Don't add a trailing NULL to the XAUTH password.
project external/jmonkeyengine/
a6b4465 New drop of the jmonkeyengine library
59b2e68 Adds the jMonkeyEngine library to the build.
f9b3048 Initial empty repository
project external/libavc/
0b23c81 Decoder: Fixed initialization of first_slice_in_pic
4945612 Decoder: Moved end of pic processing to end of decode call
8b5fd8f Decoder: Treat first slice in a picture as part of new picture always
69b5191 Decoder: Add supported width check for MBaff streams
9d60a0c Decoder: Added a check for unsupported resolutions
1f0ab0b DO NOT MERGE: Decoder: Fixes an out of bound write in bitstream buffer
9a00f56 Decoder: Return correct error code for slice header errors
f634481 Decoder: Initialize default reference buffers for all pictures
7950bf4 Fix in returning end of bitstream error for MBAFF
33ef7de Decoder: Fixes an out of bound write in bitstream buffer
b88f59d Decoder: Padded gau1_ih264d_top_left_mb_part_indx_mod to avoid an out of bound read
ef27433 Decoder: Fix in checking first_mb_in_slice
bee9b9a Decoder: Increase memory allocation for weights & offsets for interlaced clips
2cd2f7a Decoder: Fixed DoS in header decode when no PPS is present
74f03b6 DO NOT MERGE Decoder: Increase memory allocation for weights & offsets for interlaced clips
1d5640f Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases
99a85bb Decoder: Fixed an out of bound access while parsing SEI
e1cf7ea Decoder: Fixed number of MB calculation for interlaced error streams
43e0aa2 Decoder: Fix in MB count in MBAff error handling
3183684 Call ih264d_deblock_display only for valid process calls
9b095de Decoder: Fixed allocation of ps_dec->ps_nbr_mb_row
902c152 Decoder: Fixed cur_mb_info initialization in error cases
3ebff7d Decoder: Fix in error concealment in the case of Mbaff clips
56b5563 Decoder: Fix in the case of error in the first MB in frame.
d1896de Decoder: Fix in returning incomplete frame error
54cbe1b Decoder: Fix initialization of ps_next_dpb during reference list creation
d7eee55 Decoder: Fix in checking for valid profile flags
project external/libevent/
96109b5 DO NOT MERGE: Build static libevent for the target.
project external/libgdx/
ebb6f04 Security fix for overflow check.
0da62f4 Fix buffer overflows
890381c Fix security vulnerability
project external/libhevc/
1ab5ce7 Handle invalid num_reorder_pics & max_dec_pic_buffering in SPS
01ca88b Fix in handling wrong cu_qp_delta
b5cae81 Added check for invalid log2_max_transform_block_size in SPS
a76773a Fixed handling invalid chroma tu size for error clips
4def2df Fixed out of bound reads in stack variables
68215fd Fix in Chroma SAO for non-multiple of 8 height
f4f3556 Handle invalid slice_address in slice header
27405a2 Added memory barrier calls
project external/libmpeg2/
f301cff Check for Valid Frame Rate in Header
227c1f8 Error Check for VLD Symbols Read
project external/libnfc-nci/
6b9d393 Fix native crash in nfc_ncif_proc_activate
project external/libnl/
f83d9c1 Perform range check on len in nlmsg_reserve
f01b03b libnl: Check data length in nla_reserve / nla_put
project external/libopus/
d9d5ac4 Ensure that NLSF cannot be negative when computing a min distance between them
project external/libunwind/
f7eef92 Move large structure off the stack.
project external/libvpx/
57e9ae1 libvpx: Cherry-pick 1961a92 from upstream
70cca74 vp8:fix threading issues
1114575 DO NOT MERGE | libvpx: Cherry-pick 0f42d1f from upstream
000486a DO NOT MERGE | libvpx: Cherry-pick 0f42d1f from upstream
206b75a DO NOT MERGE | libvpx: Cherry-pick 0f42d1f from upstream
3e88ffa DO NOT MERGE libvpx: Cherry-pick 8b4c315 from upstream
518e6a5 DO NOT MERGE libvpx: Cherry-pick 8b4c315 from upstream
5225d93 DO NOT MERGE libvpx: Cherry-pick 8b4c315 from upstream
project external/lldb/
cf26fc9 Add NOTICE and MODULE_LICENSE files
8aaa523 Fixes for LLDB build to work around host 4.6.2+ compiler issues.
d55c5b1 Add Android.mk support for building LLDB on Linux host.
35a9d3a Initial empty repository
c590c67 New settings: target.use-hex-immediates and target.hex-immediates-style - Immediates can be shown as hex (either Intel or MASM style) - See TestSettings.py for usage examples - Verified to cause no regressions on Linux x86_64 (Ubuntu 12.10)
3160832 clean up about 22 warnings messages
50851d8 Re-enable check previously disabled due to llvm.org/pr16603
a688acc Test to see if logging is enabled before printing to a log channel in StopInfoBreakpoint::PerformAction(). <rdar://problem/14651751>
4300bb1 Initialize m_leak member variable.
a984aa9 Fix bug in Host::getLLDBPath() due to misusing Twine - use SmallString instead - original implementation resulted in incorrect behaviour of lldb -P
e0d9e75 Centralizing Intel compiler detection logic in lldbtest.py to avoid duplication in the future. - Addresses review comments from Stefanus!
31cdd3d Support one more flavour of Intel compiler in TestThreadStepOut
65a0207 Mark remaining failing test on icc as expected fail..
042b14c Allow building test suite with non-default libc++ - add new "--libcxx" parameter to dotest.py to specify path to custom libc++
9de79f9 Test compatibility improvements for ICC - update TestThreadStepOut.py to work with Intel compilers - fix typo in TestConcurrentEvents
2fa8346 Additional fixes/xfails for icc tests
d60b54f Mark additional icc test failures as expected fail.
4097bef Re-enable fast stepping for arm targets. The issue being worked around was fixed in llvm commit r186846. <rdar://problem/14489274>
0d23b9f Disable test on Mac OS X due to llvm.org/pr16769
23bb947 Updates TestLongjump to ensure that compiler optimizations don't affect the mapping of source to assembly so that the same test script can be used with more compilers.
7526625 Fix Linux Host::GetCurrentThreadID() to return real tid (not pthread_t). This fixes threadname logging (--thread-name) Add "-t" to TestLogging.py script to enable threadsafe and disable threadname logging
2bf9633 Allow test categories to be skipped.
a749646 Update failing tests on Linux for clang and gcc to only fail on Linux instead of all platforms.
4349bcb Fix thread name updating in Linux. "thread list" should report correct names always now. Created new LinuxThread class inherited from POSIXThread and removed linux / freebsd ifdefs Removed several un-needed set thread name calls
17c4bc4 Optimize Host::GetThreadName() to read from /proc/$TID per Matt's suggestion.
e138d9f Mark some tests as explicitly failing on clang/gcc as they pass on icc. Also, rework the signed types test to check for signed or char type in the output as char is signed by default.
666a1f8 Fix lock hierarchy violation in Process (lock ordering of ThreadList mutex and StackFrameList mutex) - this fix ensures the ThreadList mutex is always locked before the StackFrameList mutex
a224c7c Add the LD_LIBRARY_PATH to target.env-vars for tests expecting libimf.so when testing with ICC.
cae3de0 Adds a test for 'target module dump symfile' to the LLDB suite.
93d8e42 Mark additional ICC failing tests as expected fail.
03e3352 Update break conditions test to have consistent behaviour on all test suite compilers. Also update comment in const variables test to reflect ICC status.
c3e49ca Set an extra debug flag when testing with ICC so that it generates the correct debug info for inlined tests.
6629791 Updated the LLDB rvalue reference test to cross-reference with a bugzilla report, provide more detail on compiler compatibility, and to illustrate that this is an issue with expression evaluation.
384ba77 Reverts r187449 (report_fatal_error) in favor of a log message since the extra check introduces 22 new test failures with the LLDB clang buildbot.
bc16b92 The DisassemblerLLVMC has a retain cycle - the InstructionLLVMC's contained in its instruction list have a shared pointer back to their DisassemblerLLVMC. This checkin force clears the InstructionList in all the places we use the DisassemblerSP to stop the leaking for now. I'll go back and fix this for real when I have time to do so.
1475fc7 Assorted test suite fixes as a result of GCC 4.8 validation efforts - disable some TestConcurrentEvents cases (which are affected by llvm.org/pr16714 -- watchpoints in multithreaded programs) - relax number-of-bp-locations check in TestUniqueTypes/TestUnsignedTypes - skip TestDataFormatterStdVector cases with GCC 4.8 (known failure due to llvm.org/pr15301) - workaround for race condition in TestHelloWorld.py - update TestSettings.py to work on distros (like Fedora) that have /bin/cat hardlinked to /usr/bin/cat
1d6437d Fix problematic override _exc_info_to_string - pass through to base-class implementation when raised exception is not from an LLDBTest - should make the test suite errors a little easier to root-cause
293e35b Add a default case to the LLVM expression opcode switch statement - better than failing silently next time the DWARF standard introduces new opcodes!
01711aa Send a stop event when an expression stops at a breakpoint in an expression and doesn't ignore the stop.
f3b05d6 Add missing -Xlinker to order test.
9b27646 Use -Wl to specify -rpath correctly.
4acd24a Use the correct compiler to compute dependencies.
4b93aee Add format specifiers to various format ids so we can print thread ids in decimal on Linux and FreeBSD.
0b864ee Updates the DW_AT_data_member_location handlers for the LLDB DWARF plugin to handle the case of an integer constant (DWARF 3 and later).
8c2dc0e Run-time reg context selection for POSIX targets
5119a64 tests: process connect needs "-p gdb-remote" on FreeBSD as on Linux
9c19b01 tests: Mark expected FreeBSD failures due to pr14424
f40b092 tests: Mark expected FreeBSD failures due to pr16697
e4923dd <rdar://problem/14526890>
21f98a3 Fix TestConcurrentEvents to behave nicely with GCC 4.8 - newer gcc generates additional debuginfo for function exit (stack object desctruction) which was causing tests to fail - work-around consists of not declaring any stack objects in main()
cf88b95 Use flag instead of rwlock state to track process running state
e6017d3 Adds a DW_OP_call_frame_cfa handler when evaluating DWARF 3/4 expressions in LLDB that load the canonical frame address rather than a location list.
1038418 Document "show args" -> "settings show target.run-args"
5bcb221 Fix the logging messages for SBFrame::FindRegister().
6855784 Add an SBFrame::FindRegister() method to make it a little easier to retrieve a register value.
6bea559 Refine the fix in r187094 to only distrust the StackID comparision when we are starting from an address with no symbols. If we don't do that "nexti" will stop too soon when stepping past a tail call jump.
ca4c37b Fixed several problems with watchpoint expressions.
7b30525 tests: Build test code on FreeBSD the same way as on Linux
073fc88 Fix the lldb build after the removal of mblaze.
f476592 Set thread names on FreeBSD
2c0e10c Correct typo in comments
fd024c0 Remove unused code
6bd7f0d tests: Mark expected FreeBSD failures due to pr16699
e5dadc1 Add explicit braces to quiet the "avoid dangling else" warning from clang.
3bf526a tests: Mark expected FreeBSD failures due to pr16706
4fd912f tests: Mark expected FreeBSD failures due to pr16696
afed35e Skip dead-strip test also on FreeBSD
9aa84a1 Annote expected failures on FreeBSD due to pr14540
6b80ad9 Fixes LLDB address ranges with gcc 4.8 - Modifies the DWARF parser for DWARF 4 specification of hi_pc as an offset-from-low-pc.
dcddd0c Fix test execution on FreeBSD versions other than 9.x
454916c Handle the case where we are stepping through code with no symbols, so we can't really find the function start PC and so the StackID changes with every step. Do so by checking the parent frame ID, and if it hasn't changed, then we haven't stepped in.
66a8356 Update link for the SysV x86_64 ABI standard doc; x86-64.org has been down for months and is likely no longer supported. This was the most stable-looking link I could find for the current (0.99.6) version of the ABI doc.
1455203 Modify ProcessPOSIX to use the thread list mutex as needed - should resolve (at least some) of the spurious crashes we are seeing in multithreaded tests on Linux (and likely FreeBSD)
10c0722 Fix test suite make so that -std=c++11 gets set properly for supported compilers and -std=c++0x gets set only for gcc 4.6 versions. Previously, -std=c++0x was being set for all compilers.
4edd4b4 tests: Mark expected FreeBSD failures due to pr16696
ccfb499 tests: Mark expected FreeBSD failures due to pr16697
8be3659 test_iter_registers is expected to fail on FreeBSD
4e6d297 Add expectedFailureFreeBSD test wrapper
772a667 <rdar://problem/14521548>
14d0ef4 Don't rely on C99 for loop initializers in test case
d6b0910 Update www build instructions for FreeBSD
b669abf Add FreeBSD buildbots to build page
0422ad8 elf-core: Document offset constants in FreeBSD prstatus parser
9ec5022 Update current state of FreeBSD port
61b8793 Updated the LLDB status page to reflect recent work on Linux.
4a217a5 Updating tests that fail with ICC 13.1 because of the different mapping of assembly to DWARF.
f9332bb Fix rvalue test makefile.
eebd175 Remove builtin attribute from calls whose targets we replace
4514d50 Skip test reported to hang the FreeBSD buildbot
da46268 elf-core: Remove now-unused compile-time FreeBSD support
eb4b3d2 elf-core: Add helper function for parsing FreeBSD NT_PRSTATUS
3c2a6c6 elf-core: Improve FreeBSD support and move data extraction to parse time
0bf2d69 elf-core: Parse vendor-specific notes
69a3951 Remove spurious "-C" flag from CMake command lines in build.html.
b8a579f Adds a test for "disassemble -a" after an assert, which can fail with ELF because a synthetic symbol hasn't been provided for stripped function symbols.
fe4a7c6 Add instructions to www/source.html for using the Git mirror for those so inclined.
8941bca Fixed a potential crash in the GetOSVersion code caused by a CFStringRef going out of scope.
52e92d1 When a Cortex-M3 target is selected (armv7m), force disassembly to be in thumb mode. <rdar://problem/14107444>, <rdar://problem/14107405>
d98d8cb Fix i386 FreeBSD build
1423616 elf-core: Run-time reg context selection
fae98db elf-core: Remove SetTriple workaround
11a05f2 Factor out common string match code for POSIX log enable/disable
2c0e306 Reworked the test decorators to match the test results on the buildbots.
da1becd Add another link to the Python API docs.
e0fefe3 Updated the test suite to fix xpasses on the gcc buildbot primarily due to r186347 (thanks Greg!). Your mileage may vary depending on the gcc and stl versions in use (see llvm.org/pr15301).
5c94013 Add links to LLDB API reference docs
2468dc7 Minor typeo fixes in doc scripts
bdcd079 Add LLDB API reference docs (for Python and C++)
b436ef6 include only LLDB API in docs generated by lldb-cpp-doc (cmake) target
d2d164e Don't use a function-scope static varaibles in RegisterContextLLDB::SavedLocationForRegister to cache the pc and sp register numbers -- if lldb is debugging multiple Targets of different architectures, this will be incorrect. If these were to be cached anywhere, it would have to be up in the Target.
27699d7 Turn off fast stepping for ARM till the MC's MayAffectControlFlow gets more accurate.
40faebc elf-core: handle core with a single NT_PRPSINFO (not one per thread)
008f3dc This commit does two things. One, it converts the return value of the QueueThreadPlanXXX plan providers from a "ThreadPlan *" to a "lldb::ThreadPlanSP". That was needed to fix a bug where the ThreadPlanStepInRange wasn't checking with its sub-plans to make sure they succeed before trying to proceed further. If the sub-plan failed and as a result didn't make any progress, you could end up retrying the same failing algorithm in an infinite loop.
3138ad6 Use the correct call to close down the lockdown connection.
e0ee393 Didn't get the right version of these files in the checkin for r186132.
4f33a82 Fix the partial backtrace when using a combination of stripped function symbols and -fomit-frame-pointer.
2029d58 elf-core: Support FreeBSD at compile-time
f6f5269 Re-introduces ELF core file support for Linux x86-64 Usage: 'lldb a.out -c core'. TODO: FreeBSD support. TODO: Support for AVX registers. TODO: Refactor so that RegisterContextCore* don't inherit from classes that use ProcessMonitor to fix the build on OS/X.
8f9653b Correct comment to match class name
7220c65 FreeBSD: Replace GetSignalInfo with GetLwpInfo
0bbfea6 simple plugin now works with Linux fix assert in SetPluginInfo implement Linux ePathTypeLLDBSystemPlugins and ePathTypeLLDBUserPlugins implement Linux Host::Backtrace and Host::GetEnvironment add .gnu_debugdata comment
36a09d1 Fix Rendezvous breakpoint to only be set once, resolve addr in BreakpointLocationList::FindByAddress
3407e76 Fix typeos.
0645d18 Add tests for 'thread step out' for multithreaded programs - test with python API - test with command interpreter - test stepping a single (selected) thread - test stepping all threads in the program
250e749 Fixed a problem in IRForTarget where we would not delete a constant after we replaced it with a dynamically-computed value. Also ensured that we replace all users of the constant if there are multiple ones. Added a testcase.
473e233 Disabling the introspecting summary for __NSCFSet (essentially, for CF*SetRef)
801c11e Remove unused RunLocker and related code
97abb6d <rdar://problem/13793059>
a5445d5 Fix typeo in diagnose-unwind.py.
1e46e1a Fix issues with GCC debugging. GCC emits DWARF in unique ways that LLDB wasn't handling. This fix will fix cases where classes are forward declared using DW_TAG_structure_type and then actually defined using DW_TAG_class_type. LLDB, when it finds a forward declaration, would try and find and parse the complete type. It does this by:
a9aab24 Actually use the return value we get back when creating a persistent variable, rather than making a (potentially expensive) lookup by name.
0b009ee Adds a passing test for step-over and step-out when the inferior is about to call longjmp (non-local goto) in a single-threaded inferior.
7a11ebd Bump version number to 310.99.0.
9671f05 Commit Timothee Besset's patch to update Host/linux/Host.cpp to keep up with the changes in r186211.
4a4448b Modified the expression parser to only try to write to registers if they were modified in the expression. This eliminates spurious errors if the register can't be written to but the expression didn't write to it anyway.
750ed92 Revert the ELF core file support until a few things can be worked out:
f789be4 Missed a checking that should have been checked in with 186211.
7980d35 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
26345cb Introduces core file support for Linux x86-64 using 'lldb a.out -c core'. TODO: Support for RegisterContext_x86_64::ReadFPR.
95eeb63 Added Repr() and Str() member functions to our PythonObject class to allow easy conversion to-string of every PythonObject
f68ffcd Adding information on the scriptable keywords ${target|process|thread|frame.script:function} to the LLDB documentation
13a63b9 Fix the linux gcc 4.6.3 buildbot failures that happened after my recent types checkin.
ecced88 Enabled the "--debug" option functionality that will SIGSTOP the current process allowing a debugger to attach.
9a76f6f Work-around for GCC issue where setting a breakpoint on a vector definition also adds a breakpoint on the d'tor call
674f7d1 Handle BreakNotify for threads whose tid doesn't match the ThreadSpec of the BreakpointSite to avoid asserts when stepping in a multi-threaded application.
bcbf2b5 The correct max value for size_t variables is SIZE_MAX not UINT64_MAX. Removes lots of warnings when building on 32 bit hosts.
a04d685 Fix gcc buildbot failures, re-enable tests disabled due to llvm.org/pr16575
be43cbd TypeHierarchyNavigator was removed in r186130
1e68e88 Unblock buildbot.
4e49a5b Get debugserver to call task_set_state to prime the control registers so that watchpoints take for threads created while the program is running. Remove the testcase skips from TestConcurrentEvents.py, since they all pass now, and fix TestWatchpointMultipleThreads.py - which should have caught this problem - so it doesn't artificially break on new thread creation before the watchpoint triggers.
52f7923 Huge change to clean up types.
e14eec8 Tentatively re-enabling TestBreakAfterJoin on Linux - Unable to reproduce llvm.org/pr16170 locally
1a58e83 Added a memory.py module that contains a 'memfind' command which allows you to search memory for a byte pattern.
cb18736 Enable Mac OS X tests disabled due to llvm.org/pr16567 - thread count remains correct now that we use pthread_kill() instead of kill() to deliver signals
571be42 Improve TestConcurrentEvents.py - code cleanup, improved reporting when failures take place - ensure known thread is interrupted by using pthread_kill() instead of kill() in the signal worker thread - above should avoid llvm.org/pr16567 on Mac OS X (though kill() could still cause threads to pop out of existance temporarily) - added an additional check that all threads have exited after worker threads are all join()ed - logged llvm.org/pr16603 for the new Linux bug discovered
b89642b Tweaks to the Python reference and example command to use the preferred print style and the (finally available :-) SetError API
513ca60 Adds methods to ObjectFileELF to access data in ELF segments in preparation to add support for ELF core files.
21d8200 Fix unhandled SIGTRAP signal on Linux causing assertion.
0c4c43c Fix "source list -n printf" on Linux (printf is symbol alias for __printf)
3d8e151 Add stub GetThreadName for FreeBSD, missed in r186033.
737579d 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.
8592329 Stop process monitor from ProcessPOSIX::Finalize
0ba7548 Add support for listing inferior thread names on Linux.
4bb4232 Adding a summary for ObjC blocks
ea46260 Fixed an issue introduced with my last fix where the command and sequence ID extraction were moved causing them to be reversed.
b090a39 Call xmlFree on the node contents returned by xmlNodeGetContent, as the docs say to do.
7940069 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.
7efa088 Fixed the CommunicationKDP::SendRequestAndGetReply() to correctly be able to deal with getting a reply from a previous packet without resending the packet again.
246621a Add silent option to command source. Patch from Matthew Sorrels
e279f1a Reverting ProcessMonitor shared pointer changes
b9d995d Second attempt at getting the PyCallable changes in trunk
784091a Cleanup in TestConcurrentEvents.py - re-enable tests fixed by Matt's commit this morning (addressed llvm.org/pr16567) - disabled tests affected by new bug llvm.org/pr16575 - removed some commented out code in inferior
cd2b54b Change TestRegisters.py attach case to attach to a.out and enable that test case
1dc7fe8 Use shared pointers to hold the process in ProcessMonitor
ff3536b Fix signal handling for POSIX (only tested on Linux) processes in multi-threaded programs. Also fix a related issue where if a thread exits after a thread continue, lldb would hang.
ff1bf4d Add the frame content dumper function call to one more place.
297fc67 Add new information gathering to the lldb & simple backtrace methods: print five words of memory at the beginning of the stack frame so it's easier to track where an incorrect saved-fp or saved-pc may have come from.
7847c11 Update exception to match decorator name
ff5c6d9 Add TestConcurrentEvents test for LLDB's handling of inferior threads - Test verifies LLDB's handling of inferiors with threads that: hit breakpoints, modfiy variables that have watchpoints set, generate user signals, and crash. - Add a few "stress tests" (with ~100 threads) -- run these with "-l" dotest.py flag. - Fix stop_reason_to_str helper in lldbutil to handle eStopReasonThreadExited. - Add sort_stopped_threads helper to lldbutil to separate thread lists based on stop reason.
1617c78 Added missing SBModuleSpec.cpp file to the CMakeLists.txt
f9215ba Added a way to extract the module specifications from a file. A module specification is information that is required to describe a module (executable, shared library, object file, ect). This information includes host path, platform path (remote path), symbol file path, UUID, object name (for objects in .a files for example you could have an object name of "foo.o"), and target triple. Module specification can be used to create a module, or used to add a module to a target. A list of module specifications can be used to enumerate objects in container objects (like universal mach files and BSD archive files).
28dafe0 Use target DisplaySource if available so we can get mixed source and assembly.
731c629 Pass tid through to ptrace operations
4c7dfad Avoid crash if we fail to resolve process in attach
f78578b Remove @expectedFailureGcc from TestInlineStepping as function prologue bug is not reproducible anymore.
2bea9f0 Skip Test-rdar-9974002 with Clang 3.4 (due to llvm.org/pr16214) - should resolve remaining failures on clang buildbot
78f2f67 Add missing -std=c99 flag to appease GCC 4.6 - this issue was detected on recent GCC buildbot runs
8bbc216 Re-apply TestHelp.py fix
f3b68be Fix python 2.6 compatibility issue introduced by r184615 - argparse_compat library does not support reading environment variables - should unblock Linux GCC buildbot from running tests again
26bc105 Revert commits that cause broken builds on GCC buildbots - build fails due to PyCallable template definition inside an extern "C" scope
f390b21 Remove empty files left behind from move to POSIX/
100b99e Symbol prologue code checks if funciton lines up with symbol and uses function prologue code with line info if so.
45158a8 Update error message; detach-keeps-stopped is also not on FreeBSD
5577ce0 Remove lldb's custom copy of the C++ demangler, used only on Mac OS X. Testsuite shows no change in results using the system runtime's demangler. <rdar://problem/12029914>
4fa5470 Fix ObjectFileELF crc32 code used when no build id is present.
5226e7d Workaround for infinite recursion in InitOSO->GetByteSize->GetSymbolVendor.
a114603 Import the builtin type prefix before we import the user expression prefix so that the user expression prefix can use the uint, int, size_t, and other types without having to define them.
a0e48cc Mark the "step over single instruction" plan private in the StopInfoWatchpoint::PerformAction to ensure that the watchpoint not the step is reported as the stop reason. Also, stash away & restore the current stop reason just so it can't go away on us.
ca14706 Fix build with LLVM_DISABLE_PYTHON
82dc0f1 Add split symbol support to test makefile & add linux split symbol test case.
ed0c095 Add SymbolVenderELF to autotools build (for Linux + FreeBSD) - should resolve the build failures on the linux clang buildbot
20670a7 Sync parts of FreeBSD Process plugin with Linux
8bf4e92 Remove obsolete comment
efac8e0 Build standalone debug symbol file support on FreeBSD too
bf1bec6 Use the "last created watchpoint" rather than asserting on watchpoint commands passing no watchpoint ID.
52fbbd2 Change the default timeout for KDP communications to be 5 seconds. <rdar://problem/13793059>
13b1089 Added SymbolVendorELF to the wrong target (lldb-tool), now it is correctly added to lldb-core.
02b2a20 Fixed Xcode project to include SymbolVendorELF.
49409a5 Recognize "decltype(nullptr)" as a valid DW_AT_name for DW_TAG_unspecified_type tags as meaning the C++11 null pointer type.
a807cee Split symbol support for ELF and Linux.
b54b7dc Formatting cleanup.
fa2cd91 Following the modification introduced in llvm by commit 185311
b0cb21e More useful printout of arguments after the recent changes to support LLDB_TEST_ARGUMENTS
151416f Fixed SBProcess::RemoteLaunch() to use the platform executable path. Patch from Sebastien Metrot.
a91efb6 <rdar://problem/14309010>
f77aef8 Missed a place where we have to pass the source location twice to FunctionDecl::Create.
4a20587 Hitherto the IRForTarget infrastructure has mainly been suitable for preparing a single IR function for operation in the target. However, using blocks and lambdas creates other IR functions that also need to be processed.
2f3daef Default parameters are evil and should not be used. Case and point this checkin that fixes implicit conversions that were happening.
bb14d13 FileSpec destructor doesn't need to be virtual.
47e3ed8 ArchSpec doesn't need a virtual destructor.
87f0261 PathMappingList doesn't need a virtual destructor.
1eba651 Don't check for "are there any loaded sections" before trying to resolve a breakpoint site. We've already got a process, and any breakpoints with section relative addresses won't resolve their load addresses so they will error out at that point.
3f7faa8 Move sys/sysctl.h include after its dependency sys/types.h
e6d9dec Prevent race in when stopping a "read thread"
bdde84a A bit more cleanup on the process_events.py to use best practices for event handling.
5f365bc Cleanup of IRForTarget. Removed some relics of the time when the IRInterpreter ran inside IRForTarget.
1a582bc Fixed the IRInterpreter to reject any code that has more than one function with a body. This prevents declarations e.g. of blocks from being passed to the IRInterpreter; they must pass through to the JIT.
00f42bb Adding support for extracting line table information from .o files that do not have aranges
238fab3 Fixed IRExecutionUnit so that it looks up addresses correctly. We have been getting lucky since most expressions generate only one section (or the first code section contains all the code), but sometimes it actually matters.
58274a3 <rdar://problem/14195566>
e46dd5b Remove the process's reservation cache and don't bother checking if a region is safe to use. In cases where regions need to be synthesized rather than properly allocated, the memory reads required to determine whether the area is used are
fa72100 <rdar://problem/14281898>
9bb6d25 Update the platform options help strings.
eb3cd92 Fixed the process_events.py example to be able to specify the platform and also use the debugger's listener.
813bec3 <rdar://problem/14262854>
52b8b75 Remove unneeded limbo state flag.
007e7bc Remove unused include.
e61eaae Don't explicitly set update version
4dc3761 Fix the lldb build.
50be3f7 Remove ifdef LLDB_CONFIGURATION_DEBUG directives around the formatter cache ivars/methods.
a227fcd Remove the #define USE_CACHE since the formatters cache has been operational for a while now and has not caused issues that warrant disabling it Also, print the cache hits statistics if the log is in debugging mode vs. LLDB being a debug build - this should make it easier to gather useful metrics on cache success rate for real users
688ad89 <rdar://problem/14266578>
7529c9b <rdar://problem/14243761>
9c9a7bf <rdar://problem/14266411>
794296a Fixed a bug in ClangASTSource where we would return the target of a typedef when asked for a typedef.
f4b0e69 Fix undefined behaviour in data formatter test -- ensure char* null-terminated so LLDB does not read off the end of the array.
1525e6a Update version sscanf to match FreeBSD release info
bd5505c Skip dsym tests also on FreeBSD
aedf8e0 Skip tests that hang on FreeBSD
750fc7f Correct use of __FreeBSD_kernel__
a1f1c16 Match printf format specifiers and arguments
43d853f Update comment after Linux->POSIX rename
63a2648 If debugserver fails to interrogate the inferior process CPU type for any reason, use debugserver own's cputype as a best guess when we reply to the debugger's qProcessInfo packet or when initializing our register tables. <rdar://problem/13406879>
59752d1 Remove some unnecessary uses of nub_break_t in the arm specific support files for debugserver to fix a build failure for arm. Also remove some of the code used for software-driven single instruction stepping; this is slowly being yanked out and these particular bits overlap with the nub_break_t going away.
abfef87 Fixed the instruction emulation so that it doesn't print to standard output as part of normal operation.
cf9d2e9 Direct dir to target.source-map.
a1f156a <rdar://problem/14182286>
7f066dd We set the error when a breakpoint condition doesn't return anything; that's great.
b00d743 Tests require GNU make, called gmake on FreeBSD
1571ac3 Sync FreeBSD files to Linux equivalents, to reduce noise in diff
362dae7 Update comment to match class name
b04386b Use canonical termios.h location
6ef9606 Eliminate missing virtual destructor warning on FreeBSD
f357569 Update for Linux->POSIX rename
77e1b85 Using offsetof to an item within an array is an extension so mark it as such to avoid compiler warnings.
7e20fea Fix some more mismatched integer types causing compiler warnings.
0bb91ef Remove comment that is no longer applicable
0b54125 Added a regex that can be specified to avoid showing contents on types that match. Also split things up a bit so this can be run as a stand alone script or in lldb.
29f30d0 Remember to update the m_thread_list_real after you do UpdateThreadList.
c4353f2 Add some useful logging for tracking thread matching problems.
6fa3c50 Test suite support for setting arguments through the environment
9d1b2d2 make command history test case run silently regardless of import status of module foo
3741503 Lots of cleanup on the SWIG wrapping layer
9e0d89e <rdar://problem/14004410>
4bf8e1e <rdar://problem/13980489>
d91dc81 Change the SWIG wrappers to stop directly casting SB object to SWIG objects, and instead use a safer type-checked API (thanks templates) Any time a SWIG wrapper needs a PyObject for an SB object, it now should call into SBTypeToSWIGWrapper<SBType>(SBType*) If you try to use it on an SBType for which there is not an implementation yet, LLDB will fail to link - just add your specialization to python-swigsafecast.swig and rebuild
73cfdbc Adding two new markers to the ${var..} specifier - %N = show the name of the variable - %> = show the expression path of the variable
001cd53 In thread and frame format strings, it is now allowed to use Python functions to generate part or all of the output text Specifically, the ${target ${process ${thread and ${frame specifiers have been extended to allow a subkeyword .script:<fctName> (e.g. ${frame.script:FooFunction}) The functions are prototyped as
27bdcbf Also report any OS python plugin in use.
1d37c12 Print the general purpose registers for frame 0.
23a3f02 Don't go to the trouble of trying to figure out the implementation function for selectors sent to nil objects, it won't work anyway.
d0f064d Fixed a problem with materialization and dematerialization of registers that caused conditional breakpoint expressions not to work properly. Also added a testcase.
52ae9c9 Revise r184335 so that warning suppression flag is only for clang 3.4 and higher
0a5dfb9 Fixed a crasher that I encountered when looking up a virtual base class offset.
e4513b9 Cleanup the output a bit by removing old print statements and also printing the number of types found.
bc46e29 Unique types a bit more using the clang type to make sure we don't get multiple copies of the same type due to the debug info having multiple types that get uniqued.
77e67a5 Implemented a types.py module that allows types to be inspected for padding.
571358f Huge speedup for testsuite categories This ensures that we won't try to do cleanups of test cases that we are skipping e.g. this brings down the time required to run the cmdline category on my machine from ~70s to ~30s
3a0e6a5 Use LLDB_INVALID_REGNUM at Mike Sartain's suggestion
8270f31 Updated the LLDB download page to reflect Debian package locations for 3.3 as well as the incremental 3.4 releases.
237bbc1 <rdar://problem/14005652>
ff272a0 The 'register' keyword is now deprecated in C++11, so ignore the warning when compiling lldb with clang since python headers commonly use the keyword.
09dffd8 Fix two 'variable is used uninitialised' warnings. Change assert to llvm_unreachable.
3e11c7e Sort out a number of mismatched integer types in order to cut down the number of compiler warnings.
0017b48 A few small enhancements to the diagnose-unwind command.
aba2527 Improvements to "command script import" to better support reloading in Xcode
8e76448 Added a new decorator function in the "lldb" module that can register a command automatically. We have just a few kinks to work out for the Xcode workflow and we will be ready to switch over to using this. To use this, you can decorate your python function as:
dddd452 Don't actually Halt in the Interrupt handler for the Process, just send an AsyncInterrupt. That's actually not async-signal-clean, but it is a lot safer than Halt...
efcd1bc <rdar://problem/14086503>
e8afa73 <rdar://problem/14086503>
b267bbd <rdar://problem/14194140>
a8b5623 Added the ability to get a list of types from a SBModule or SBCompileUnit. Sebastien Metrot wanted this, and sent a hollowed out patch. I filled in the blanks and did the low level implementation. The new functions are:
8c3391b <rdar://problem/14194128>
aeb2faf Add assertion for when no watchpoint found in POSIX watchnotify handler. Also, ensure x86_64 watchpoint registers are initialized before they are accessed on the POSIX side.
be2f909 We were getting an assert because somebody was making a watchpoint that was neither read nor write. Tighten up the checking so this isn't possible.
cfc567f Make the lldb "Release" configuration use the same llvm build "Release+Asserts" as the lldb "Debug" configuration. No need to rebuild llvm and remove asserts to build the local optimized lldb.
6a988f4 Temporarily disable checking of watchpoint hit on FreeBSD on trace message.
f95a9d2 PlatformDarwinKernel was treating its file path arg as a kext bundle id -- but when the user did a manual "target modules add", it would be a file path. If the kext bundle lookup fails, fall back to calling PlatformDarwin's GetSharedModule which will handle a file path correctly. <rdar://problem/14179858>
e515076 Fix the help for "image dump line-table" - its arguments are compilation units not modules.
89f5819 Fix a missing pointer deref that was uncovered by one of the buildbots.
b6a4c56 <rdar://problem/12717717>
c86ae08 This patch fixes the issue where our command-line tab completer would sometimes replicate commands e.g.
f9ed86a Removing the lldb-perf file group from our Xcode project This is in a separate project now so this duplication is unnecessary and some referenced files were also dangling after a rename
0b2934b Update to new API.
c358068 <rdar://problem/13270271>
546a056 Added a troubleshooting page as a place to add commonly asked questions with solutions.
81471a2 <rdar://problem/13926101>
3cb3fe3 Adding a "cmdline" category to the test suite
2856e76 A collection of 3 patches to the COFF file ObjectFile parser from Virgile Bello:
3f0cc74 Renaming the "--wipe" option to "command history" to "--clear" (-C) for coherence with the rest of the LLDB command-line interface
5444368 Add new files to CMakeLists.txt to fix cmake build error.
b1fb727 <rdar://problem/14134716>
9ba2772 Fixing a linking issue when building LLDB with ToT LLVM
f3d6ee2 Fix breakpoint test to account for full path of source file location.
755d62b Fixed a problem in the expression parser that caused the IR interpreter not to work if the process had finished running.
025bcc0 Fix single whitespace before breakpoint filename in some tests due to r183932.
54ff88c Add newer Linux AT_ defines from elf.h.
7dff122 Remove extra modules.Append() as it causes dupes in the m_images array. (Used with image list, etc.)
7db6f36 Fix unitialized variable in AuxVector::GetEntryName() which crashed in AuxVector::DumpToLog
5d4f6a7 Fix autohell build.
3626760 Remove unused Host macro.
180f4cf Fix the build. clang/Driver/OptTable.h was removed.
d70d228 Added the ability options to: - specify the architecture - specify the platform - specify if only external symbols should be dumped - specify if types in the function signatures should be canonicalized
a5942bf Remove unneeded include.
5824663 Added a new makefile setting that can be set in LLDB makefiles: USE_LIBCPP. This will enable libc++ support. Improved the makefile "clean" to include deleting all ".d.[0-9]+" files.
ba3ebe1 Added a SBSection::GetParent() to the API.
d315f7d Don't depend on the transitive inclusion of PathV1.h
1c638ac Don't depend on set being transitively included.
7064981 Be sure to print out the full file path when dumping breakpoint resolvers for file and line when the full path was specified.
99447a6 Update for llvm change.
2588f14 Added some new example code that can grab all functions from any executable, and it will print out the function name, range, return type and argument types.
e740ae2 Remove the windows CR
15c1774 Use the global functions instead of the Program methods.
7ae6112 If using clang 3.4, skip tests affected by llvm.org/pr16214 - clang emits incomplete DWARF information for structures referenced via typedef
5c8dbc4 LLDB feature status update to mention limitations with core-file debugging and exec.
035ef3d <rdar://problem/11914077>
ac94caa Huge performance improvements when one breakpoint contains many locations.
c8b6859 <rdar://problem/13299214>
349caf7 Removing a redundant write
31edb4b Update TestRegisters for running on Linux (filed llvm.org/pr16301) - skip the attach cases in TestRegisters.py -- caused slowness/sigabrt - fixed log file removal function (in case test is run with -# flag)
0d23187 Improvements to the data formatters SB API:
0d7dbb3 <rdar://problem/13646047>
a9dc882 Use llvm::APFloat for formatting if a target is available. Each target when debugging has a "ASTContext" that helps us to use the correct floating point semantics. Now that APFloat supports toString we now use that. If we don't have a target, we still fall back on the old display methodology, but the important formatting should always have a target available and thus use the compiler floating point code.
8b9e969 Making our Python decrefs NULL-safe
e0fabf9 <rdar://problem/13759177>
0f2a853 <rdar://problem/13779789>
6fb3f2c Remove eFormatHalfFloat as it isn't needed. eFormatFloat should be used and the byte size will tell us how to display it.
6fefc3a <rdar://problem/12876503>
01c3be1 <rdar://problem/12783351>
169c064 Adding properties to the SBBreakpoint class
129b120 <rdar://problem/14101771>
010a8d8 Add output of fault address on an address related crash (ie. segfault).
67e0d37 Updated the links to Debian packages, provided a link to the blog on the nightly, and provided download links for incremental 3.4 packages for 32/64-bit editions.
0debb7c Updating convenience register attach test
beeeeb5 Don't set stdin to devnull for forked processes
13bf1b0 Don't retry the Connect when starting up debugserver if the reason for the previous failure was EINTR. That means the user was trying to interrupt us, and we should just stop instead.
36a96da Revert r183281, adds a comment about how to reproduce the hang.
2f27f40 Updated the LLDB status page to reflect the recent addition of multi-threaded support.
fda7a97 Tweaking Daniel Malea's fixes to Makefile.rules to ensure that we correctly pass -stdlib=libstdc++ to clang when compiling as well as when linking Not doing this was causing link errors as clang was looking for libc++ symbols while linking against libstdc++
16796e0 Tweaks to the std::list (libstdc++ test case)
45546c7 Make the "SearchFilterByModuleListAndCU" work correctly for searches at the CompUnit level. Fixes a bug in "break set --source-pattern-regexp" when a shared library is specified.
fd4324b <rdar://problem/14086944>
1e9bfd5 Document the extended detach packet.
a619e8e Remove the debugserver "--open-connection" option and obey the hostname that is passed into debugserver.
76e57e3 <rdar://problem/14083928>
98c6082 Address::GetSection() turns a weak pointer to a shared pointer which is a little slow. So in Address::operator== & != do the cheap GetOffset() comparison first and only compare the sections if that is true.
d39de03 Hardened the IR interpreter to prevent it from reading non-standard value sizes.
d93d913 Fixed a problem where evaluating a breakpoint condition in two different processes (with the same target) could cause crashes. Now the breakpoint condition is always evaluated (and possibly parsed) by one thread at a time.
fb323f0 Adding a test case for pr15415 - partial backtrace with -fomit-frame-pointer that is patterned after its parent TestInferiorCrashing.py.
0c52164 Reworked the routine that qualifies the tool-chain for expected failures to handle sub-strings. - For instance, allows 'gcc' to match x86-64-linux-gnu-gcc as required on some Debian builds. - Also adds doc-strings and a more consistent naming convention for related helpers.
e0c604f <rdar://problem/14064994>
a45d2e2 Fixes for the IR interpreter:
adbaa44 Add test cases for attaching to a process after fork - one test case is due to llvm.org/pr16229 - other test case uses a Linux workaround for above by using os.fork() instead of subprocess module
6f25bce Fix Makefiles in the data-formatter-stl tests - specify compiler flag -stdlib=libstdc++ only if using clang (not supported in gcc)
3990c27 <rdar://problem/13125225>
cdffa42 Skip intermittent watchpoint test failure when testing on Linux/gcc.
448b761 Use std::vector for the array of RegisterInfo structs that describe the register context. - Ensures that this container is populated once for the lifetime of lldb --- In particular, static methods can query this data even after the first RegisterContext has been destroyed. - Uses a singleton function to avoid global constructors.
51e60bf Small changes to diagnose_unwind. Correctly provide help text. Print the lldb version at the top of the output.
8c9353a Change UnwindLLDB::SearchForSavedLocationForRegister so that it will allow for the link register save location being in the link register - in which case we should iterate down the stack, not recursively try to find the lr in the current frame over and over.
1df0f73 Re-enabling a test that is no longer failing
ef375ec Remember to tell the breakpoints to update themselves when new symbols are added.
28ad12b <rdar://problem/13239809>
d65317e <rdar://problem/12582328>
0c9166c <rdar://problem/14003462>
7cba7de Add a more clear explanation of what is missing for core files with no LC_THREAD load commands.
8775ada Make sure a core file has thread contexts before we try and load it.
0ffd7ac Fixed printf build warning.
7c6bda4 <rdar://problem/13941992>
a4fc694 <rdar://problem/13988982>
764cbd9 More minor FreeBSD fixes. - link libexecinfo (as libc is missing backtrace()) - enable FreeBSD-specific plugins
04cc48e If ThreadPlanCallFunction hasn't set its notion of the "real stop info" yet, just return the current PrivateStopInfo.
a800e92 Un-skipping test that was disabled due to llvm.org/pr16191 - adding workaround recommended by Greg (-fno-limit-debug-info clang flag) - filed bug llvm.org/pr16214 against Clang
804930f Fix crash (in optimized builds) due to invalid metadata operand - ConstantDataArray is not a valid MDNode operand - encode function-name strings in metadata by wrapping in an MDString instead
ba5e392 Fix FreeBSD build due to previous changes to ProcessMonitor::Detach.
dae58bb Fix a couple of error message typos.
884288b Fix various build warnings.
12c5bf3 Fix setting of watchpoints on inferior thread creation for Linux.
8414899 Matched a vector new with vector delete.
eef2d4c Fix link ordering issue on FreeBSD
f812f62 A few cleanups for our documentation
c350e13 Add ability to attach/detach to multi-threaded inferiors on Linux. All running threads will be detected and stopped on attach and all threads get resumed on detach.
e6acc70 Skipping test case for clang 3.4 due to llvm.org/pr16191 - should resolve remaining buildbot issues with debian/clang builder
ae8c27b Use C-style include to match style in file (instead of C++ style) - as per review comment from Dimitry Andric!
e73f1d2 CMake FreeBSD fix: add missing Process plugin directory
05c203e <rdar://problem/13752848>
b05e4bb FreeBSD cmake build fixes. - missing #include <cstdlib> in Mangled.cpp - missing include dirs in FreeBSD CMakeLists.txt
7ef39ca <rdar://problem/14035604>
f0e769c Small code cleanups
9a71f96 Fixed value evaluation to handle null constants.
7b61b79 An NSData with 0 bytes in it would report a summary of “0 byte” Making sure that I get my English right by saying “0 bytes” instead
6606882 <rdar://problem/11109316>
ea6c961 Adding a diagnose-nsstring command This should help us figure out issues with the NSString data formatter
782e474 Find 'ps' command using which() rather than invoking directly - should address Debian test errors due to not being able to 'ps' directly
c8ede81 Improve TestExitDuringStep to verify thread behaviour during step-over, step-in in addition to step-inst
fa03a8a This checkin enables Python summaries to return any string-convertible object Upon encountering an object not of type string, LLDB will get the string representation of it (akin to calling str(X) in Python code) and use that as the summary to display
4f2353a Disabling another watchpoint test with intermittent failure.
df4ddd9 Remove extraneous files from test directory.
95c25e4 <rdar://problem/13956179>
a1f4fb8 Remove unused variable.
f3657f4 Fixing problems with thread create during step test.
17044a3 Disabling watchpoint test with intermittent failure.
5bdfd66 Error out if the expression for a breakpoint condition doesn't return a result, instead of blindly trying to use that result.
c82316e For "expr", say what the timeout units are in the help string.
b36a909 Refactors to provide two variants for evaluation of text_list: - The original test now passes on Linux with clang because a breakpoint is hit prior to evaluation of text_list, which improves text coverage. - The new test fails because 4 steps are requested, and only two occur prior to evaluation of text_list. --- Note that the loss of every second "next" command can be reproduced using lldb manually with this script.
4d16278 Removing expected fail from another test that is now passing.
4a3914d Removing expected failures for watchpoint tests which are now passing.
3bd2ebd Adding support for stopping all threads of multithreaded inferiors on Linux. Also adding multithreaded test cases.
315f54f Fixed continue issues with process attach/detach - added code for tracking transition from eStateAttaching to eStateStopped in event listener and handling process continuation there.
6d66236 Add instructions for running LLDB tests with non-default compiler/architectures - documented the cmake variable LLDB_TEST_ARGS
01059bf <rdar://problem/13863031>
56c7ef6 Add CMake targets to build LLDB reference docs - [ninja|make] lldb-cpp-doc builds the C++ API reference docs - [ninja|make] lldb-python-doc builds the python API reference docs - updated build page on website to include instructions to build docs
3933006 Mac OS X CMake fix: generate LLDB version from xcodeproj - This resolves the remaining issues related to building lldb utility/dylib - TODO: fix up debugserver build
4c86cf0 lldbPluginOSDarwinKernel doesn't exist.
0d91b80 Update countTrailingZeros function usage to match llvm's r182667.
b50a2f3 Fixed signed operations in the IR interpreter. Scalar now can make itself signed if needed.
9bca2cf Updated the status page to reflect the current Linux status.
f2dcf35 Added a parameter for relocation info to keep lldb in step with llvm due to r182625, which takes a first step towards symbolization of disassembled instructions.
d1ddde0 <rdar://problem/13643315>
d5a5e25 Adds PT_TLS and PT_GNU_EH_FRAME names to DumpELFProgramHeaders
79d1af3 Improve vim-lldb expression commands for objective-c and implement evaluate-under-cursor:
0be9b3b ObjectFileELF::GetModuleSpecifications on Linux should work now. Which means "platform process list" should work and list the architecture. We are now parsing the elf build-id if it exists, which should allow us to load stripped symbols (looking at that next).
17d5a03 Add ${ansi.XX} parsing to lldb prompt, use-color setting, and -no-use-colors command line options. settings set use-color [false|true] settings set prompt "${ansi.bold}${ansi.fg.green}(lldb)${ansi.normal} " also "--no-use-colors" on the command prompt
b1077c4 <rdar://problem/13966084>
537f06f Adding .arcconfig file to LLDB to allow using Phabricator for reviews
4b1b8d9 GCC gets confused by enums in bitfields, so I removed the bitfields. This should be conforming C++11, though, cf. C++03 9.6(3): " A bit-field shall have integral or enumeration type (3.9.1). "
8c2c41e Don't compare 4 characters on a 2 character string.
3cc1b9c Fix shutdown to correctly close stdout and stop showing garbage characters on exit. Patch by Matthew Sorrels
1c52f53 Cleaned up the File API a bit.
9565e9d Fixed a file leak introduced with my last checkin. Also be sure to include <stdio.h> just in case.
e15e58f Added a new "lldb" log channel named "os" for the OperatingSystem plug-ins to use.
3a54da4 <rdar://problem/13963648>
e787234 Fixed a bug where persistent variables did not live as long as they needed to. This led to equality tests involving persistent variables often failing or succeeding when they had no business doing so.
77d340f <rdar://problem/13963648>
4d511cb <rdar://problem/13956179>
a8aa5ab <rdar://problem/13880690>
0b8ed08 Add entries to vim-lldb plugin docs/help page for :Lattach and :Ldetach
5d41462 LLDB Vim plugin usability improvement: ":Lshow" now displays all panes - no longer requires a pane name argument
3451b9e Implement attach by name in LLDB Vim plugin using ":Lattach <process-name>"
53fde4b <rdar://problem/13455021>
48b6bd1 <rdar://problem/13455021>
9ea8bec <rdar://problem/13455021>
be0aaf8 Adding a newline for better overall readability
6f742d2 Quiet the new exec test case down so it doesn't spew debug prints.
e3f9bfd Added a test case that verifies that LLDB can debug across a process exec'ing itself into a new program. This currently is only enabled for Darwin since we exec from 64 bit to 32 bit and vice versa for 'x86_64' targets.
07e3124 <rdar://problem/13878726>
bed7ab5 <rdar://problem/13925432>
4d4ff9e <rdar://problem/13892516>
9eedc23 s/to override/To override/
02af494 Improving the previous checkin about target.load-script-from-symbol-file
0468bb2 <rdar://problem/13925626>
b71bdd8 <rdar://problem/13925626>
37c43e4 Forgot to check for empty error strings in the previous checkin
2e7f2db <rdar://problem/13878726>
6630d1f Patch from Yacine Belkadi that fixes a typo in an error message.
fcf1793 Patch from Yacine Belkadi that fixes an issue in Variable::GetValuesForVariableExpressionPath().
47a4e0d Fixed a problem where the dynamic checkers (i.e., the Objective-C object checker and the pointer checker) were not always installed into expressions.
83d90c5 <rdar://problem/11398407>
d922272 <rdar://problem/13928053>
451a54e The Linux process plugin wasn't returning the correct linux signals. This fixes that. Thus, this patch also negates a previous fix for handling SIGCHLD.
7712e1c Added a few linux build configure/make examples.
bee8a95 Avoided the use of two test decorators with xfail/xpass logic in the same test.
dbe390e Allow LLDB to be built on a system with an installed gcc/g++ that isn't the default. I recently installed gcc-4.7/g++-4.7 on Ubuntu and tried to build by specifying:
e4c2022 Fix CMake install target - copy lldb python module into directory specified with CMAKE_INSTALL_PREFIX - make liblldb.so a symlink (to liblldb.so.X.Y where X.Y is the LLVM version)
b7d46e3 Fix xpasses on the gcc buildbots using compiler versions to qualify the xfail.
63188eb ProcessMonitor improvements for Linux. -Remove tracing of fork/vfork until we add support for tracing inferiors' children on Linux. -Add trace exec option for ptrace so that we don't receive legacy SIGTRAP signals on execve calls. -Add handling of SIGCHLD sent by kernel (for now, deliver the signal to the inferior).
2686891 Append missing version number to lldb binary built by cmake - now, the output binary is called 'lldb-3.4' instead of 'lldb' - a symlink 'lldb' -> 'lldb-3.4' is also created - this fixes one of the problems preventing CMake from building Debian packages
4f1759b Update LLDB web docs with instructions to run individual test suites/directories
473d0da Modifies the log directory to ensure that the log file will be found on tear-down (i.e. for CI agents that clean up artifacts aggressively).
5a7a232 Adds a test case for bugzilla #15671 patterned after TestInferiorCrashing.py.
d968be7 Uses a helper to consistently verify the stop reason in all tests.
b3080fe Updated TestAbbreviations to reflect the changed output in r182068.
b31044e Fixed the build to reflect the API name change in r182085.
92025da Fix a typo (ouput => output)
d40be9c Comment out ObjectFileELF::GetModuleSpecifications() function until I can debug where it's causing tests to fail.
589d361 Apropos should search user commands as well as built-in commands.
23a5162 <rdar://problem/13217784>
6680109 <rdar://problem/13893094>
535df0c Implement ObjectFileELF::GetModuleSpecifications(), and add PlatformLinux code to deal with unknown arch properties.
519bc3c test commit
f043618 Fix ObjectFileELF to not use the file_offset twice.
5c7c781 the return False in breakpoint actions should also be mentioned on the website
114b81f Note in the documentation about the fact that Python callbacks can return a value and if that value is False, LLDB won’t stop at the breakpoint
0086b94 Handle the case where there is a user breakpoint set at the location of one of our function call exception catching breakpoints. We need to force ourselves to stop in that case.
88b7778 Fix Linux 'platform status' command. Its output is now closer to that on Mac OS X - resolves llvm.org/pr14806
5acdec7 Added a per-process cache for reserved memory regions that aren't actually allocated in the process. This cache is used by the expression parser if the underlying process doesn't support memory allocation, to avoid needless repeated searches for unused address ranges.
cf9591f <rdar://problem/13891604>
7de74f9 <rdar://problem/11158023>
0689f16 Removed unused code and an unused event.
918ccd4 Fixed an xpass due to r181841 on Linux with gcc. Note that the clang variant contains to xfail, and r181841 is a fix for the test.
95fd285 <rdar://problem/13128331>
6bc4dcd Clean up linux test decorators and add links to known bugs - s/skipOnLinux/skipIfLinux/ to match style of every other decorator - linkify bugizilla/PR numbers in comments
0c2921f Fixed a few obvious errors pointed out by the static analyzer.
ab23045 Re-enable tests disabled due to llvm.org/pr14541 - "platform process list" command works on Linux now - "process attach -n" (attach to process by name also works on Linux now)
9b4c548 Implement "platform process list" on Linux - read process information from /proc - resolves llvm.org/pr14541 :)
716624b Revert r181833: lldb prompt issue still occurs on buildbot (http://lab.llvm.org:8011/builders/lldb-x86_64-linux/builds/4124) - maybe consider checking in the 'good' version of libedit to avoid ancient system version
0440b11 Disable test case that causes assertion failure on Linux - filed llvm.org/pr16016 - fixed URL for llvm.org/pr16000
8194512 Fix cmake builds from checkouts with multiple remotes - newlines from GetRepositoryPath output were interfering with ninja builds - replace newlines with spaces - remove *only* trailing spaces from repo path
780b209 Include also sys/wait.h in the case of a FreeBSD kernel with a glibc (Debian KFreeBSD for example)
f470a3c Only include under arm and an Apple system. Otherwise, it will fail under a GNU/Linux under ARM
d0cd7a0 <rdar://problem/13883385>
bef2dde Change the mechanism around SBValue::GetSP() so that it always requires the target API lock AND the process StopLocker (if there is a process) before it will hand out SBValues. We were doing this in an ad hoc fashion previously, and then playing whack-a-mole whenever we found a place where we should have been doing this but weren't. Really, it doesn't make sense to be poking at SBValues when the target is running, the dynamic and synthetic values can't really be computed, and the underlying memory may be incoherent.
a79c53f Don’t pop the process input reader for a “stop” event if ShouldBroadcastEvent has restarted the process.
bd58742 Didn't mean to check in this change...
ec84224 Need to add the LLDB.framework directory to the rpath for the driver programs or they won't run.
2f6a4ed <rdar://problem/13892319>
8295262 <rdar://problem/13821289>
946618a A first pass at auto completion for variables and their children. This is currently hooked up for "frame variable" only. With a little work we can also enable it for the "expression" command and also for other things.
99d5e71 Unbreak the linux buildbot tests. This still fails for the clang that is being used on linux.
a8364e9 <rdar://problem/13748253>
8467d89 Fixed the test case to pass on Darwin. This might pass on linux as well. The test case now properly validates g_points as a global for the class A version, and the static variable for the file static.
db7e500 Remove XFAIL from tests affected by llvm.org/pr-14637 - unable to repro locally, much like many people commenting on the issue
0afb440 Fix GCC buildbot failures in API/Multithreaded tests - fix typo initializing unique_ptr - add missing throw specifier to play nice with older libstdc++ exception class
156d8e0 Skip C++ API/Multithreaded tests that are unsupported with Clang/libstdc++ - older versions of clang are unable to include <chrono> from libstdc++ - skipping tests until buildbots are updated
d2771ed Adding C++ tests that drive LLDB from multiple threads - test_breakpoint_callback -- filed llvm.org/pr-16000 - test_listener_resume -- resume a process from a thread waiting on SBListener - test_listener_event_description -- SBEvent description from SBListener thread - test_listener_event_process -- query process/thread/stack info from SBListener thread
fb1b8e2 strncmp was checked incorrectly in the Linux symbol lookup fix.
4084fe7 <rdar://problem/13764135>
375ba88 Fix inline stepping test case on Linux because Thread::ThreadStoppedForAReason ignored virtual steps. - add IsVirtualStep() virtual function to ThreadPlan, and implement it for ThreadPlanStepInRange - make GetPrivateStopReason query the current thread plan for a virtual stop to decide if the current stop reason needs to be preserved - remove extra check for an existing process in GetPrivateStopReason
ba50856 Avoid $rax for 32-bit inferiors to fix a failing i386 test on the darwin buildbots.
0c7c90a A few more small tweaks to arm core file handling. Most importantly, have DoReadGPR/DoReadFPU/DoReadEXC return -1 to indicate failure if they're called. Else these could override the Error setting for the relevant thread state -- if the core file didn't include a floating point thread state, for instance, these functions would clear the Error setting for that register set and lldb would display random bytes as those registers' contents. <rdar://problem/13665075>
2f03876 Small change to the previous checkin, read in the fpu register context in one large block - and be sure toget the fpscr value as well when processing a core file.
3b244b7 Fixes to read the floating point and exception registers sets out of arm Mach-O core files. <rdar://problem/13665075>
aa44e68 Adding new test cases for inferior crashing.
ca23ca1 Add expression tests for a function in an anonymous namespace.
53cb310 Fix Mac OS X build issue introduced by incorrect using statements
2e4c63b Prevent convenience registers from being included in "read register" as they are derived registers.
f1bc35d Unset CFLAGS/CXXFLAGS when running tests via cmake/make check targets - should fix automatic tests set up on http://llvm-jenkins.debian.net - needed in order to make Debian package builds depend on passing test suite
8aa4acf Cleanup test output when run via cmake/make check targets
de0201e Fixed expression evaluation with convenience registers.
b4c63c3 Fixed build break introduced by r181717 - added missing ConstString header - moved "using lldb*" statements to OS-independent section
0244977 Add setting of lldb thread names on Linux.
c6b4f9e Removed a duplicate entry from the GDB to LLDB transition page. Also fixed a <b>...</b> tag.
b080446 <rdar://problem/13875830>
88e529b Fix Linux warning about missing virtual destructor in Operation classes
4463d1e Unbreak cmake builds by skipping Darwin kernel plugin on non-Mac platforms
1d3db0a <rdar://problem/13183720>
7bef4e2 Also pass the MCRegInfo to createMCAsmInfo. Follow the modification introduced in commit r181680 of llvm
aefeaa4 Under GNU/Linux, do not build lldbPluginDynamicLoaderDarwinKernel.a. It was breaking the build
6316650 Add a new constructor with ConstString (and not only const char *). Hopefully fixes the build of lldb
f0c0882 Update ProcessKDP and ProcessMachCore to use ConstString plugin names when specifying the DynamicLoaderDarwinKernel.
ba065ca A couple of small fixes to make core file debugging less noisy. Don't want about being unable to find a needed objective-c runtime function when we're core file debugging and can't jit anything anyway. Don't warn when quitting a debug session on a core file, the program state can be reconstructed by re-running lldb on the same core file again.
addad59 <rdar://problem/13700260>
cfc053e Use mangled and demangled names when checking for a function in a namespace and a function in an anonymous namespace, respectively.
f189358 Hardened LLDB against NULL conditions being passed to breakpoints.
0e19160 <rdar://problem/13854277> <rdar://problem/13594769>
96641d8 Add temporary fix for calling c++ global/anonymous functions on Linux.
1f85fa8 Adding support for setting thread stop state when a process stops.
92e33e9 Removed expectedFailureDarwin, and added a note about the disparity between the automated tests and testing at the lldb command-line.
80a1fa6 Added an integration test to step through a crash and then test for globals, locals, arguments, registers and the back-trace.
391d612 Scratch that, the problem was elsewhere.
f5e3377 Temporarily roll back r181375 - it is causing an unexpected regression, I'll revisit this and apply once I figure out how to address that.
6c32437 Add an explicit check for a darwin kernel KDP_VERSIONSTRING when starting a kdp communication session, instead of assuming darwin kernel for any "non-EFI" kdp session. <rdar://problem/13854098>
9d35870 Don't completely drop methods we don't want to put into a CXXRecordDecl on the ground; rather, put them into the translation unit as functions.
c73fedb Fixed "log enable linux registers" and added a test. - Eliminated the use of static for methods that read m_register_infos, so that these routines can be implemented in the base class. - Eliminated m_register_infos in the base class because this is not used when derived classes call UpdateRegisterInfo. - Also moved the namespace using declarations from headers to source files.
11a8ab6 <rdar://problem/13831149>
85e3c2f Revert r181482 as it causes occasional hangs in LLDB buildbots
23dfe46 Skipping a test that asserts with gcc and icc to allow the test suite to run to completion on the gcc buildbot.
dc07851 Fixed a build failure introduced by r181501.
863aa28 Changed the formerly pure virtual function:
ac39f3c Providing a more interesting command template for LLDB This one actually exploits the SB API to obtain information about your inferior process
56a41de Add all Decls found through FindExternalLexicalDecls to the DeclContext. This fulfils the contract that we make with Clang by returning ELR_AlreadyLoaded.
8c0c20a Changing the std::map test case to use source breakpoints instead of relying on the nexting always "getting it right" to stop at the locations of interest This should make us more robust in the face of changing compiler line tables and other library modifications
0c90b2c Fix the error reporting for ProcessKDP::DoDetach.
2bbe7d5 Fixed the process attach by name test to get the target _after_ doing process attach. Otherwise the target isn't valid. This fixes 2 test suite failures on darwin.
ba7354c Remove debug print statement.
52e4391 Adding code to set thread state to stopped when the process stops.
03e1677 Now that you can "command script import" packages, the docs should reflect the best practice
b335e70 Quiet g++-4.7 warnings about const issues and fix the scope of the "if (IsValid())".
edeed2d Test case added for importing packages
994b86b <rdar://problem/13621080>
6b2d9e1 Improvements to the package importing feature - test case will follow
0dd7170 Update lldb status page to reflect watchpoint support on Linux.
d1828c3 Mark multi-threaded watchpoint test as skip on Linux due to lldb assertions in the debian buildbot.
afbb2f6 Fix assertion from previous fix for debian os watchpoints.
a7c0f9f Attempt to fix failing watchpoints for debian os buildbot.
c5bcb90 Remove distinction between Apple/Linux for Process run locks: - Played with the current dual run lock implementation for a few days, noticed no regressions, so enabling in trunk so we see if any problems are detected by buildbots.
015f7ad Adding test-case for llvm.org/pr15936 (known failure with GCC 4.6/4.7) - verify that backtraces for stacks that include functions which contain illegal instructions are correct, and that variables in said functions can be printed.
4cb3248 Fix rdar-13338477 test-case for Linux. - Using __builtin_trap confuses the stack unwinder - __builtin_trap specific test will be added shortly
779e6ac Fixed IRExecutionUnit build failures due to changes in the underlying llvm::JITMemoryManager API.
6cd6f3a If the MemoryCache is asked to look up an address that is in an invalid range, it should set the error in the Error passed into the function.
7c79a27 Figure out the reply to "PlanExplainsStop" once when we stop and then use the cached value. This fixes problems, for instance, with the StepRange plans, where they know that they explained the stop because they were at their "run to here" breakpoint, then deleted that breakpoint, so when they got asked again, doh! I had done this for a couple of plans in an ad hoc fashion, this just formalizes it.
236c185 Add code to ReplaceDSYMSectionsWithExecutableSections() to handle the case where a new section is added to the executable after the dSYM has been created, e.g. the CTF segment added to mach_kernel after all other linking and processing has been finished. <rdar://problem/13258780>
6c1a8cf Adding support for process attach by pid on Linux.
8e8de5e Adding some LLDB-specific logic to the tracer (in a separate tracer module) to improve the quality of the output when debugging data formatters (more improvements are necessary before this is really legible)
087fd12 First iteration of a Python tracer module This module uses Python's sys.settrace() mechanism so setup a hook that can log every significant operation This is a first step in providing a good debugging experience of Python embedded in LLDB This module comprises an OO infrastructure that wraps Python's tracing and inspecting mechanisms, plus a very simple logging tracer Output from this tracer looks like:
3d4d51c Add watchpoint support for Linux on 64-bit host.
4e75e35 Reinstating r181091 and r181106 with fix for Linux regressions.
95bea1d Temporarily reverting r181091 and r181106 due to the vast test breakage on the Linux buildbots while we develop a better understanding of how to manage the thread lists in a platform-independant fashion.
69d7c10 Making it possible to specify a substring for a category name as long as the match is unique
35efff8 In ProcessKDP, if the remote connection is not EFI, force this to be a DynamicLoaderDarwinKernel debug session even if we didn't get back a load address for the kernel.
e091960 <rdar://problem/13063912>
15802aa Fix typo in C++11 flag for the GCC 4.6 code path: missing '-'
8f0f475 <rdar://problem/11669154>
6a94de3 Converting ScanFormatDescriptor to use std::string instead of a manually managed buffer of bytes
5581a7e 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.
5b80c93 Change ProcessKDP::UpdateThreadList's call to FindThreadByProtocolID to not let it update the thread list or else we'll infinite recurse call back to UpdateThreadList.
7bee8ab After recent OperatingsSystem plug-in changes, the lldb_private::Process and lldb_private::Thread subclasses were changed and the API was not respected properly.
08f60c8 fix a couple of clang static analyzer warnings. Most important was a new[] + delete mismatch in ScanFormatDescriptor() and a couple of possible memory leaks in FileSpec::EnumerateDirectory().
42b336c 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.
84e098b Don’t use the resolved value to calculate the location unless the variable is in a register This was causing a bunch of test cases to fail in python_api/process since they relied on SBValue::GetLocation()
ee72ab6 Unbreak lldb/test/macosx/universal.
f9c47ac Fixed a test suite typo error that caused the test to fail.
5f0bc2b Don't check the private state in DoOnRemoval, check whether THIS event caused a restart.
3b8dbf8 Small adjustment to PlatformDarwinKernel::ExamineKextForMatchingUUID to help performance -- if the FileSpec we're examining does not contain the UUID we're looking for, don't bother examining the file any further.
5fbfb91 Clear up any deadlocks on Apple builds that were due to the lldb_private::Process.m_private_run_lock variable.
26aa43b Refactoring for struct UserArea: - Decouples RegisterContext_x86_64 from UserArea. - Restores the original definition of UserArea so that it can be used to generate offsets for use with ptrace. - Moves UserArea to the 64-bit Linux specialization.
ff1bbd7 Fix logic error in ProcessInfo::SetArg0
01400dc Harden against potential empty nodes in the map
c881c1d <rdar://problem/13749871>
65da8c2 Added a few things that need to be installed on linux to build LLDB.
7d18ec6 Fixed 'command script import' by eliminating the shadowing of basename.
2d73f38 Fixed the build to reflect the removal of OperatingSystem/Darwin-Kernel in r180993.
2b77fb4 Fixed the build to reflect the removal of OperatingSystem/Darwin-Kernel in r180993.
42086b4 Add a hard limit to how many frames lldb will unwind in a single thread before UnwindLLDB::AddOneMoreFrame calls it quits. We have a couple of reports of unending backtraces in the field and we haven't been able to collect any information about what kind of backtrace is causing this. We've found on Mac OS X that it's tricky to get more than around 200k stack frames before a process exceeds its stack space so we're starting with a hard limit of 300,000 frames. <rdar://problem/13383069>
daecec0 Remove the initialization/termination of the now-removed OperatingSystemDarwinKernel.
1cf06fa Remove unused OperatingSystem plugin.
24248bf Pass down the architecture of the module we're trying to match when looking at kext on the local filesystem. <rdar://problem/13785112>
0765e32 <rdar://problem/11742979>
a828fe3 <rdar://problem/13751683>
52dd223 Adding test for non-API process attach
00a8278 <rdar://problem/11558812>
a153f63 If HandleCommands is called with add_to_history set to false, turn on the m_command_source_depth so that when we forget the value for regex & alias commands it still stays off.
17a9d26 <rdar://problem/13732521>
be32d6d Mark TestConstVariables as expected to fail due to radar 13314878 on darwin. The tests are already skipped on linux.
cdee761 <rdar://problem/13788674>
2d46e9b If the Target's current architecture is incompatible with the kernel DynamicLoaderDarwinKernel finds in memory, have DynamicLoaderDarwinKernel re-set the Target's arch based on the kernel's cpu type / cpu subtype.
beb7ac7 <rdar://problem/13788579>
9c57067 Fix check_public_api_headers test on mac os x, and refactor some logic into lldbtest.py - moved build logic from Makefile and TestPublicAPIHeaders.py into lldbtest to allow reuse - added decorator @skipIfi386
2e126c5 Add missing include to LLDB.h -- SBStream
ac874f9 Changing the test to use eax rather than rax for compatibility with i386.
efc7e55 <rdar://problem/13338477>
78280ba <rdar://problem/13499317>
2cfedf5 We aren't ready for the assertions to be enabled on the ReadWriteLock classes yet.
a2ef70a Clear the register context if our process is no longer alive.
2ad6fc8 This is a useful scheme for running a particular testsuite case under Xcode. Just edit the run arguments to include the directory of the test you want to run, and run the scheme.
29ce16f Update CMakeLists with RegisterContext* files added
a946795 Correctly create the register contexts in RegisterContextThreadMemory.
d4f102f Since the IR interpreter does not (currently) support operands with vector types, it now reports that it cannot interpret expressions that use vector types. They get sent to the JIT instead.
761afb8 Recommitting r180831 with trivial fix - remember to return errors if you compute.
a0fbd46 Return zero when we don't support the byte size. Previously is we were asked to read 3, 5, 6, or 7 byte integers, we would set the error, but still return that we read that number of bytes without populating the scalar.
bb53fe5 Make our eliding of artificially-generated methods in debug information more aggressive. Emitting classes containing these methods causes crashes in Clang when dealing with complex code bases.
f408e99 Fixed Process::ReadScalarIntegerFromMemory() to report proper errors when the size is not correct.
a46013b <rdar://problem/13700260> <rdar://problem/13723772>
32657de Build fixes for FreeBSD 9.1. - TODO: Support extended register sets on FreeBSD.
dae196d Platform-specific specialization for the GPR register file. - Required for platform-independant handling of general purpose registers (i.e. for core dumps).
c3ba2bf Refactored convenience register tests to provide some coverage on Linux that is not marked xfail.
0b78f43 Revert 180829 as it causes hangs in TestTypeCompletion.py on 2 Linux buildbots:
411ab47 Reverting 180831 as it crashes TestDefaultConstructorForAPIObjects.py
4ca3715 Change CommandReturnObject::AppendMessage to print an empty line if AppendMessage("") is called. This idiom is used in a handful of places right now (e.g. to put space between different threads in 'bt all') but the empty newline is being omitted instead of emitted. <rdar://problem/13753830>
3e486f3 Print a backtrace line for a pc value even if we can't make an SBAddress out of it.
d7bb1ba TestCallCPPFunction is an expected failure on Linux; marking as such.
b4e08ab Added an option to "process detach" to keep the process stopped, if the process plugin (or in the case of ProcessGDBRemote the stub we are talking to) know how to do that.
f9138b7 Add an option to resume a suspended task.
8b73c97 Make "process handle -n true -s false" actually notifies of the signal.
fb8abab Refactoring thread state tests to show individual failures
46a60cd Put a try/catch block around the SBAddress setting; don't want to terminate the command early if we happen to have an invalid load address.
b5229b1 Make the warning message about not finding the kernel binary clearer about which kernel binary lldb is referring to.
f62ba43 <rdar://problem/13776113>
974e9fd Added a test case verifying that simple C++ functions can be called by basename.
d4d2d42 RegisterValues can now report their contents as UInts even if their contents were set as bytes. This makes expressions using registers work better, especially with core files.
10dc2a1 <rdar://problem/13695846>
7c55515 Rename unwind_diagnose.py to diagnose_unwind.py. Change finish-swig-Python-LLDB.sh to create a new lldb.diagnose subdirectory in the LLDB framework; the first diagnostic command in this directory is diagnose-unwind. There may be others added in the future.
95cad86 Fixed a problem where the expression parser would give up if it couldn't find the address for the first symbol it found with a particular name and type.
756bed4 Fixed completion of incomplete array types, fixing an assertion if we attempted to get the size of one.
8a1e654 lldb_private::StopInfo now holds onto a ThreadWP (a std::weak_ptr<lldb_private::Thread>) in case the thread goes away while the stop info still exists.
2a91beb Avoiding a potentially memory allocating code path in the Python InputReader's CTRL+C handling code path - this can potentially cause a deadlock while interrupting a user-made Python command
97a19b2 Cleanup logging to use the new "std::string FileSpec::GetPath()" function. Also added a similar function for modules:
30518e0 Don't return a reference to a local variable, and removed a redundant API.
2154a41 When lldb stops in a stack frame where we have source level information (file, line number), don't print the disassembly context around $pc -- just print the filename and line number, even if we can't show the source code. Previously if the source file was not available, lldb would print the source filename & line number and assembly. <rdar://problem/13072951>
18d5a27 Add a final fall-back to PlatformDarwin::GetDeveloperDirectory() which will run xcode-select --print-path to find the currently selected Xcode developer directory. Mostly useful for when lldb is not being run out of the /Applications/Xcode.app bundle so it can't locate the iOS or kernel SDKs.
bf1fa97 Add a few new methods to FileSpec to make it a little easier to work with directories, without increasing the size of the FileSpec object. GetPath() returns a std::string of the full pathname of the file. IsDirectory(), IsPipe(), IsRegularFile(), IsSocket(), and IsSymbolicLink() can be used instead of getting the FileType() and comparing it to an enum.
cdc3ea5 Performance optimizations to ClangUserExpression, mostly related to management of the stack frame for the interpreter.
98e61d3 Fixed a crash when we tried dyn_cast<>ing a null pointer.
2921c36 Fixed the anonymous testcase. It was testing access to 'z' where 'z' was not in scope.
5c2cd1f <rdar://problem/12529989>
5d2dab4 Hardening to avoid null-pointer crashes in the presence of malformed class types.
d82c89e skip randomly failing test to avoid buildbot noise
143d543 Mark tests as expected fail for Linux due to not being able to call/print c++ demangled functions in the global namespace (bugzilla 15854).
23df42a Fixing a typo in the SBThread::Suspend documentation
3b04228 Change Malloc to request an aligned memory size.
1b3ac89 Removing invalid test cases from thread state test
8b8a830 Fixing lldb log list text for commands category
39ebb98 Make a synthetic children provider for the ObjC Class type
1691dd2 Build fix for systems that do not support NT_X86_XSTATE ptrace support.
66bd7d7 Adds 64-bit POSIX support for AVX - Adds unique enums for ymm registers to the ABI and the POSIX register context. - Reworks the register context data structures to support a union of FXSAVE and XSAVE --- Allows the same code base to deal with the FPU independent of the availability of AVX. - Determine if AVX is supported by attempting to read XSAVE using ptrace. --- Support an extended register set for avx registers if available. - Provide a mechanism to assemble/parse register halves into a single ymm buffer for use with RegisterValue. --- Reworked Read/WriteRegister routines to read/write/parse ymm registers.
7f27bcc Purged unnecessary data structures from the IR interpreter. They are a legacy from when the IR interpreter didn't work with materialized values but rather got values directly from ClangExpressionDeclMap.
f036768 Fixed a crash in ClangASTSource when logging is disabled.
68899da In Process::ProcessEventData::DoOnRemoval, we need to handle the case where NO thread has a stop reason specially, and make sure we stop. This shouldn't happen, but if it does, the user will probably want to see it.
aad68fa More CMake fixes for OS X.
04ba2a8 Fix one small whitespace alignment mistake.
2325022 <rdar://problem/13565393>
c5e3138 Don't print the type if there is none and don't print "<invalid type>". ValueObjects can be register sets and register groups and dumping those with:
cd3ba2d Don't crash if we try to interpret the IR (incorrectly in this case) and can't handle the size. This came from trying to do:
36b877d Added the ability to extract a ModuleSpecList (a new class) from an ObjectFile. This is designed to be used when you have an object file that contains one or more architectures (MacOSX universal (fat) files) and/or one or more objects (BSD archive (.a files)).
c55307b Remove a print statement that was left in accidentally.
98b449f See: http://stackoverflow.com/questions/16166897/c-how-to-obtain-address-of-stdvector-object-in-lldb-xcode The user was trying to obtain the address-of an std::vector and the experience was more painful than necessary because data formatters were kicking in for vector* objects We got this right for libc++ - we should get it right for libstdc++ too
323c037 <rdar://problem/13209140>
2dbfe86 Fixed IRForTarget to handle Objective-C messages sent to "super".
00f8d53 Temporarily recognize exc_type EXC_BREAKPOINT with an exc_code of 0 (normally undefined) as indicating a breakpoint hit, in addition to the normal (EXC_BREAKPOINT, EXC_ARM_BREAKPOINT) pair. <rdar://problem/13730366>
e2172fd Fixed expression parser handling of empty strings.
6a25e55 Fixed a build problem.
967a997 Added support for pulling Objective-C class symbols out of the runtime. This allows calling static methods on classes whose symbols have been stripped out of the binary.
b07f8de <rdar://problem/13665446>
d9661be Changes to the ObjC runtime
79e7ad8 Fixed a problem where the expression parser would not find multiple functions with the same name but different types. Now we keep track of what types we've already reported for a function and only elide functions if we've already reported a conflicting one.
7b87e59 Fix missing module name in expectedFailure calls
ca87313 Closing parentheses is good - doing it while respecting printf format specifiers is even better
764bca5 <rdar://problem/13298695>
acac081 Also look for kexts in /Library/Extensions if that directory exists.
d986551 Be sure to print out the fully mangled name when we are unable to find a function to call so we can easily look for this symbol if needed.
23176af Adding basic test for thread state (See PR-15824)
bf5d9d4 char32_t should use an uppercase U as its prefix
538d305 Added 64-bit POSIX support to write floating-point vector registers. - Includes tests that write, read and verify vector register content.
e34ed40 Closing parentheses once they are open is a good idea
66cd2b5 The new ReadStringFromMemory() API does not work correctly with NSStrings that have an explicit length and no NULL terminator This checkin reverts NSString to the old behavior when appropriate, and cleans up the syntax to call the UTF Reader&Dumper function Incidentally, add a "-d" command-line flag to redo.py with the same semantics as "-d" in dotest.py
cbeb328 Splitting the appkit data formatters test in smaller test cases - this should enable us to get a more detailed perspective on which individual data formatters are broken
f78bf6c Fix CheckPublicAPIHeaders test case - LLDB C++ API requires C++11 - provide required -std=c++11 flag if none is specified
11ac316 Look for an inexact match in just the commands before searching the alias commands as well.
c582bbf Fix linux argument completion with for "--" options (llvm.org/bugs/pr14425)
3a5c74d Added 64-bit POSIX support to write general-purpose floating-point registers. - Includes tests that write, verify and restore floating-point register content using SBFrame.
0c5fa86 Splits register_commands into a passing test on Linux (to improve test coverage), and a failing test for register expressions.
f40162d Remove duplicate define
ab69984 One line I forgot to remove.
83ea875 Update the unwind_diagnose script to work correctly with both lldb-179 version numberings and the new lldb-300 version numberings. Remove the pretense that someone might run this from the command line; this is only used from within a live lldb debug session. Fix the loading so it can be loaded via "script import lldb.macosx" or the script can be loaded individually like "command script import unwind_diagnose.py"
5a55906 Add a new -a / --address argument to image show-unwind to get the unwind instructions for a function/symbol which contains that address.
2014fa9 Forgot to include the diagnose_unwind.py script in the initialization of the lldb.macosx folder.
848d772 Add a new python file to help diagnose backtrace failures in the field. It will be installed in the LLDB.framework and can be loaded with
fe26a23 <rdar://problem/13437949>
ca85d93 Much better way to get at the size of an std::list
bf26ea6 Daniel Malea reported seeing warnings for the use of anonymous namespaces in our public API. Removing these namespace { ... } declarations (but still keeping the helper *Impl objects outside of namespace lldb proper)
1340c4f Update CMakeLists.txt as per new file RegisterContextDummy.cpp
b6bac2a Proper English not optional
ac630b8 Fix lock hierarchy violation in Listener/Broadcaster - avoid deadlocks if Broadcaster::SignUpListenersForBroadcaster and Listener::StartListeningForEventSpec are both called concurrently
c1c3690 When parsing dwarf, add C functions to the fullname index.
ba6b37d Fix data race in Address class by wrapping m_offset in std::atomic
49ff4e6 <rdar://problem/13590152>
977260c Fix for expression/breakpoint setting of gnu indirect functions.
6c7168f Fixed the expression parser's handling of result and persistent variables so that they are not treated as remaining in the target process (i.e., having live data) when the process does not allow persistent allocations (e.g., when there is no process or in the case of kernel core files).
41efd0e Fixed an error message.
5042acf <rdar://problem/13697881>
dbeac80 Be sure to include initializer_list when needed.
9716719 Make sure file rangle integers are large enough for very large core files.
683cb69 Fixed being able to mmap an entire file by letting the default args "do the right thing".
6f8d385 Change my patch to TargetList::CreateTarget to only try realpathing the executable binary if we fail to find a binary and if it starts with a ~ character, based on feedback from Greg Clayton.
d387b46 Fixed some linux buildbot warnings.
14d09ee Improved tests for nested structs when anonymous structs are involved. - New tests can fail on OS/X and Linux, and illustrate that the compiler used to generate the DWARF can result in lldb providing clang with an external AST source that doesn't describe all required struct fields.
2c81087 Fixed two problems when reading constant/register variables in the ValueObject code:
4e7965a Fix (failing) test name reporting on buildbots - now print both test name and suite
06761aa Simplified the management of the data buffer for an Allocation to reduce heap fragmentation and make the code less brittle (and to make some buildbots happier).
c15fb8c Adding a test case for the changes made to ValueObjects to use iteration instead of recursion for navigating to their root - beware: a regression here will most probably cause a crash instead of a failure
347d722 Provided a variant of ReadCStringFromMemory that supports null terminators of any character width. This prevents unbounded reads (i.e. reads of GetMaximumSizeOfStringSummary() bytes) from causing test failures (i.e. due to ptrace EIO or EFAULT on Linux).
2ce786d Removed 2800+ lines of code that no longer do anything now that the IR interpreter and the JIT share the same materialization codepaths.
28195f9 Optimized the way breakpoint conditions are evaluated. Previously, the options for a breakopint or its locations stored only the text of the breakpoint condition (ironically, they used ClangUserExpression as a glorified std::string) and, each time the condition had to be evaluated in the StopInfo code, the expression parser would be invoked via a static method to parse and then execute the expression.
a707cf1 Reverted 179810, which breaks the expression parser.
c442bad Change TargetList::CreateTarget to realpath the c-string filename of the executable -- if I do "(lldb) file ~/bin/exe" that tilde expansion needs to take place here.
73cb33a Made IRMemoryMap::FindSpace a little cleverer, and made attempts to allocate memory in the process fall back to FindSpace and just allocate memory on the host (but with real-looking pointers, hence FindSpace) if the process doesn't allow allocation. This allows expressions to run on processes that don't support allocation, like core files.
1377cdc Remove an unneeded local var, a missing return statement in kernel search code, thanks to Greg Clayton for finding these.
86981e5 Split Linux-specific and OS X specific stuff. Add include_directories
6aa1c2c More fallout unique_ptr changes for from http://lab.llvm.org:8011/builders/lldb-x86_64-linux/builds/3565.
38f8c74 Try and unblock issue found in: http://lab.llvm.org:8011/builders/lldb-x86_64-linux/builds/3564
102b2c2 After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11.
0f0551e This commit changes the way LLDB executes user expressions.
28ba525 Document how to get "info line" information from "image lookup -v".
da0e332 Try to unbreak the lldb-x86_64-linux buildbot after recent std::auto_ptr/std::unique_ptr changes.
0b10ef6 Missed some cases when switching over to using our STD_UNIQUE_PTR macros.
0df4246 Make KQueue import the header in the correct path.
ba9b2ae <rdar://problem/13627061>
c1fe322 Added unit tests for register read (should pass) and the expression interpreter (xfail) after the inferior has crashed. - Thanks to Samuel Jacob for the related reproducer.
d8b8215 <rdar://problem/13678882>
81a96aa Since we use C++11, we should switch over to using std::unique_ptr when C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can be used and it will "do the right thing". Due to some API differences in std::unique_ptr and due to the fact that we need to be able to compile without C++11, we can't use move semantics so some code needed to change so that it can compile with either C++.
061ca65 Re-enable m_private_run_lock changes from 179329, but only for Apple hosted builds so it doesn't break the buildbots. We will try and work the issues out in the Apple build before enabling this feature for everyone.
6b47bca Revert of r179378 and r179329, which introduce a private thread lock around thread enumeration, in order to prevent consistent hangs on all 3 LLDB buildbots.
81f4b89 Remove duplicate "friend" declaration.
b3381b7 Fixed a few m_private_run_lock issues when attaching and also fixed the process to not try to restart the process if the process is exited, crashed or detached. Partial patch from Carlo Kok.
4cdf705 Fix for regression in TestCPPStaticMethods.py due to refactoring in clang. - Specify SC_Static given DIE attributes for static methods and operators.
1ce3d86 Silence some warnings about deprecated declarations - auto_ptr is one example of this
7df01f9 Add missing include
3e64905 Fix build on Linux - add a workaround header to define uuid_t on platforms that need it - unbreak remote debugging of mac os x apps
e2d0ace Revert 179694 -- it breaks remote debugging of mac os x targets for some folk - will commit a different workaround momentarily
3a201e4 Added a new API to the IRInterpreter (the old API will be gone soon!) that lets it interpret a function using just an llvm::Module, an llvm::Function, and a MemoryMap.
44199f1 Made the IRInterpreter's methods static, since it doesn't actually hold any important state.
e804caf Made the IRInterpreter be able to operate without a ClangExpressionDeclMap. Any functions that require value resolution etc. fail if the ClangExpressionDeclMap isn't present - which is exactly what is desired.
6543e06 Fix Linux build of LLDB - conditionally build mac-specific plugins only on mac (PluginObjectFileMachO, PluginDynamicLoaderDrawinKernel and PluginDynamicLoaderMacOSXDYLD) - clean up warnings by ignoring deprecated declarations (auto_ptr for example)
71c5d60 Removed the "expr" alias for "expression," which is entirely unnecessary and confuses the command interpreter when the user types "exp".
13615cf Updated the IRInterpreter to work with an IRMemoryMap rather than through its own memory abstraction. This considerably simplifies the code, and makes it possible to run the IRInterpreter multiple times on an already-parsed expression in the absence of a ClangExpressionDeclMap.
86d6ac2 Modified the IRInterpreter to take an IRMemoryMap. It doesn't use it yet; the next step is to make it use the IRMemoryMap instead of its own conjured-up Memory class.
a6686e3 Flipped the big switch: LLDB now uses the new Materializer for all expressions that need to run in the target. This includes the following changes:
2ceae99 Fix a pointer arithmetic thinko in ObjectFileMachO::GetLLDBSharedCacheUUID().
0d546ed Make sure all the threads get a chance to compute their StopInfo's before we start running ShouldStop on the threads, which might destroy information needed to correctly compute another thread's StopInfo.
6ff916f Add warning messages for the cases where the inferior process shared cache differs from lldb's own shared cache, and where the inferior process shared cache does not match up with the on-disk shared cache file.
2e8c976 Remove a debug print statement that I left in.
a81bf23 <rdar://problem/13657900>
bb75986 <rdar://problem/13468295>
482bd43 Update the dyld_all_image_infos size definition in DynamicLoaderMacOSXDYLD::ReadAllImageInfosStructure for version 13 of that structure.
45c7550 The dyld_all_image_infos structure, at version 13 and higher, has a UUID for the shared cache libraries that can be used to confirm that one process' shared cache is the same as another, or that a process' in-memory shared cache is a match for a given on-disk dyld_shared_cache binary file. Use these UUIDs to catch some uncommon problems when the shared caches are being changed for debug purposes. <rdar://problem/13524467>
2120aef Fix some minor code indentation mistakes in ObjectFileMachO. No code changes in this checkin, only whitespace.
442b3f6 New CallNext action for the test case that causes the next action in the sequence to be called right away
2c35472 Adding new Python API function to check for stopped threads.
76f9879 Added logging to each entity in the Materializer to make debugging easier when things go wrong.
56380f2 Fixed a few bugs in IRMemoryMap:
177ac0d More updates to test cases
4d77c18 Sketch test now runs 10 times Data formatters test outputs stddev
973172e Added support for registers to the Materializer. Also improved logging and error handling in a few spots in the Materializer.
ec87e5c Enabling test case to write the average+stddev pair to the results The sketch test case writes avg+stddev for all its metrics: <key>fetch-frames</key> <dict> <key>description</key> <string>time to dump backtrace for every frame in every thread</string> <key>stddev</key> <real>0.006270938361432314</real> <key>value</key> <real>0.011568079851851851</real> </dict>
b8158c8 - Adding a relaunch feature to the performance tester: you can use the relaunch if you want to measure multiple runs of your app keeping the same metrics alive. New arguments must be supplied - and the step counter will not be reset (this makes it easy to avoid endless loops) - Having the Sketch test case relaunch itself
cecfa8f Removed a duplicate copy of the contents of Materializer.h that somehow crept in, maybe during a patch operation.
faafd19 Audited the existing Materializer code to ensure that it works in the absence of a process. Codepaths in the Materializer now use the best execution context scope available to them.
f58438f Fixed issues with the way ELF symbols are parsed: - Do not add symbols with no names - Make sure that symbols from ELF symbol tables know that the byte size is correct. Previously the symbols would calculate their sizes by looking for the next symbol and take symbols that had zero size and make them have invalid sizes. - Added the ability to dump raw ELF symbols by adding a Dump method to ELFSymbol
b104986 Remove the useless SRCROOT declaration from the call of build-swig-wrapper-classes.sh & finish-swig-wrapper-classes.sh
aa5dca0 Added symbol materialization support to the new Materializer.
e287e90 Now that ValueObjects permit writing, made the Materializer use that API when dematerializing variables.
5ae1418 I don't know how I managed to build with that missing semicolon.
847a0ad Make sure we expose SetData() through the Python interface.
ab8e00e Added a SetData() method to ValueObject. This lets a ValueObject's contents be set from raw data. This has certain limitations (notably, registers can only be set to data that is as large as the register) but will be useful for the new Materializer.
8d31894 Handle an edge case where we step into a function whose UnwindPlan defines a Return Address register (e.g. lr on arm) but the RA register hasn't been saved anywhere yet -- it is still in a live reg. <rdar://problem/13503130>
934d616 Implemented materialization and dematerialization for variables in the new Materializer. This is much easier now that the ValueObject API is solid.
6e792e9 Sketch test case improvements: - use the TestCase option parsing - dump output to stdout when no file is provided
9acf369 <rdar://problem/13491977>
f4b5948 Replicated the materialization logic for persistent variables in the Materializer. We don't use this code yet, but will soon once the other materializers are online.
cc810f0 Fixed a bug where a few class forward declarations weren't in the proper namespace.
1d252a3 Change the default for PlatformDarwinKernel to be enabled a la settings set platform.plugin.darwin-kernel.search-locally-for-kexts true
814c813 New test suite option (-T) When -T is specified, the test suite will call svn info and dump the output on screen (this used to be the default behavior) When -T is not specified, this step won't be performed (the new default)
0ad9297 When specifying a relative path for the --framework option to dotest.py, Python would end up being confused and unable to locate the embedded_interpreter module, causing every testcase that uses the Script Interpreter (e.g. functionalities/data-formatter/data-formatter-stl/libstdcpp) to fail without even trying This checkin fixes that problem by absolutizing the path before pushing it to the sys.path
9cd337e <rdar://problem/13558484>
0bc756d Save away the locations at the site we hit and iterate over that collection. Otherwise the action of one location could delete the other locations, and that would leave us iterating over a reduced size collection and crash.
3b83055 <rdar://problem/13623698>
0e7cff4 <rdar://problem/13370286>
1949951 Use std::unique_ptr instead of std::auto_ptr.
f3105b5 Fixed SBValueList to have a __str__ function like all other SB classes. Previously this was done as __repr__.
a365dc5 Fixed the thread list so it correctly updates after the first core thread exists.
ce66f96 Hand over the job of laying out the argument structure to the Materializer. Materialization is still done by the ClangExpressionDeclMap; this will be the next thing to move.
2a90dd0 Handle C++ static variables in the expression parser.
3525576 Static variables inside classes were not being added to the RecordDecl, now they are. This gets us closer to being able to display static variables in classes.
4245383 cmake build of lldb was complaining about missing files.
9afae62 Change the disassemble option to specify the architecture from '-a' to '-A'.
9d2e69d Changed the way ClangExpressionDeclMap registers entities with the new Materializer so that it only registers those entities that actually need to be placed in the struct.
7905bad Updated the line on which to break for the formatters test
3b16eb9 Added a Materializer class that contains information about each variable that needs to be materialized for an expression to work. The next step is to migrate all materialization code from ClangExpressionDeclMap to Materializer, and to use it for variable materialization.
adf9e3d When ObjectFileMachO::ParseSections() notices that it has a truncated file, zero out the SectionList so we don't try to do anything with this file. Currently we end up crashing later in the debug session when we read past the end of the file -- this at least gets us closer with something like ProcessMachCore printing "error: core file has no sections". <rdar://problem/13468295>
e9b48f0 Don't erroneously put FunctionDecls into CXXRecordDecls if we didn't want to put in a CXXConstructorDecl. This prevents malformed classes (i.e., classes with regular C functions as members) from being generated from type information (and fixes a crash in the test suite).
a47ab95 Fix the help for unwind-on-error, it no longer controls what happens when an expression hits a breakpoint.
73e6eec Hardening so we won't crash if an Objective-C interface doesn't have a corresponding type.
07b3a0f Fix the help message for “one-shot”.
0b3cb0e Fixed the way we allocate executable memory on behalf of the JIT. We don't need it to be writable since we are using special APIs to write into it.
898ec0c Update PlatformDarwinKernel::GetMacDirectoriesToSearch to also try /Volumes/KernelDebugKit (the default mount point for the Kernel Debug Kit dmgs).
e255a7d Cache the VM page size that we get from task_vm_info so we don't re-fetch the value.
dfb7c7f Add optional LOG_TASK logging for MachVMMemory::PageSize when the call succeeds, too.
9274848 Add optional LOG_TASK logging for MachVMMemory::PageSize() task_info call failure.
fb190f3 Update MachVMMemory::PageSize to get the page size of a specific process if we have an updated task_info call available; else fall back to getting the default host-wide page size.
36b15e2 Change the default of 'platform.plugin.darwin-kernel.search-locally-for-kexts' to 'off' for a week or so while we test the behavior in different environments.
700ff7e Don't call DisableBreakpointSite (i.e. don't try to remove the breakpoint from the target process) if the target process is no longer alive.
f95fc9e Added support "__attribute__((__vector_size__(B)))" and "__attribute__((ext_vector_type(N)))".
07e43bd Reorder the Platform plugin settings so that they're now
12fbcf5 <rdar://problem/13563628>
0bcec0b Fixme comment.
bbebdbe Add support for Platform plugins to have settings.
3294938 Change CommandObjectPlatform commands to get the current platform from the current Target, if there is one, else back off to getting the currently selected platform from the Debugger (as it ws doing previously.)
9e6f6a6 Factored out memory access into the target process from IRExecutionUnit into a superclass called IRMemoryMap. IRMemoryMap handles all reading and writing, ensuring that areas are kept track of and memory is properly cached (and deleted).
c123883 Ah, forgot to include the header file and project file changes in r178827.
e369aed Add a new PlatformDarwinKernel for kernel debugging. This Platform plugin will index the kext bundles on the local filesystem when created. During a kernel debug session, when the DynamicLoader plugin needs to locate a kext by name like "com.apple.com.apple.filesystems.autofs", the Platform can quickly look for a UUID match in those kernel debug kit directories it previously indexed.
4bb82ac <rdar://problem/13477795>
87e929f <rdar://problem/13449987>
3f2f741 <rdar://problem/13457391>
6f9236a Change EnumerateDirectory from using readdir() to using readdir_r() so it can be re-entered while iterating over a directory safely.
03dd6a4 The SBValue impl class's GetSP can now fetch the dynamic type or the synthetic children - which it may have to compute. Thus it needs to take the API lock.
4aac096 Change the default for "use-fast-stepping" to on.
cfeaa43 <rdar://problem/13563697>
427b7e8 <rdar://problem/13198919>
edd6ade <rdar://problem/12897145>
c85713d Revert code I didn't mean to check in.
e3125ac More support for version 4 of DWARF.
c5ee7c8 Playing around with making performance test cases run from within python.
aeabc5e <rdar://problem/12789467>
00af72e <rdar://problem/13384801>
edb83a5 Fix build. This should fix the build breakage caused by the api change in 178663.
3f8c606 <rdar://problem/13561911>
b902709 #include clang's AST/DeclCXX.h to pick up CXXRecordDecl definition, needed for some versions of clang.
5b57823 <rdar://problem/13416800>
81881d2 Remove a bit of code duplication in RNBRemote::HandlePacket_qProcessInfo - call DNBProcessGetCPUType() to get the cputype of the process we're debugging.
afe3763 Fix another old usage of GetCurrentThread() to get a mach port number in RNBRemote::HandlePacket_qProcessInfo -- add a new GetCurrentThreadMachPort() so callers who need to make a mach thred_get_state() call at the RNBRemote level will have a way to get the port number.
296b06d <rdar://problem/13506727>
33d1098 <rdar://problem/13563403>
1d4812c Allow partial matching for alias commands as well as regular commands.
a93eb8b Improved reporting of faults on i386.
3e1a063 Fixed the version test for darwin.
54f3020 Fixing a silly bug that would cause string summaries not to show up :-)
08257e4 Enabling metrics to calculate (and dump) their standard deviation
101a2d6 Misc fixes: - make an overload of Launch() that takes an init list of const char* if all you need to tweak in the launch info are the command-line arguments - make Run() return an int that you can use as an exit-code - make dynamic values work properly when recursing in FetchVariables() - make the po output more obvious in verbose mode
fb1493d <rdar://problem/13415737>
4ee040c <rdar://problem/13516463>
d47cda9 Added "rb" and "rbr" aliases to fix regressions when we changed "rb" to "rbreak".
51a5b47 Minor update to build instructions: workaround a bug in cmake+make build files
00ebf2a Fix test case to not run to main and "next" 5 times. Use a breakpoint.
1574f8a Remove some unused code.
2869c4c Enabled blocks support in the expression parser. Note: although it is now possible to declare blocks and call them inside the same expression, we do not generate correct block descriptors so these blocks cannot be passed to functions like dispatch_async.
0247cf5 Fix bug in ProcessPOSIX::IsAlive() exposed by r178324 - process in 'unloaded' state was (incorrectly) considered to be alive by POSIX plugin - above caused a regression in TestProcessLaunch cases
dd03f0a Avoid hang in attach-by-name test case - Check that process attach succeeded before attempting to WaitForProcessToStop (observed to cause hangs on Linux) - Update comment in TestHelloWorld case -- attaching by name still broken
b1b36ec Integrating option parsing in TestCase for added convenience To hook it up to individual test cases: - define GetLongOptions() in your test case class to return something other than NULL (hopefully an array of options :-) - implement ParseOption() to check for the short option char and do the right thing - return true at the end if you want more options to come your way or false if you don’t - make sure that your Setup() call takes int& and char**& so that optind post-processing can happen - and call TestCase::Setup from your setup
51a5395 Proper option parser for the Sketch test case
f85902c Elide all artificial copy constructors, because they are probably trivial. This means that we don't confuse Clang about whether a class is trivially copy constructible. It can figure that out itself as long as we don't explicitly feed it the constructors.
d11d312 Fixed the way ClangASTImporter deports types from ASTContexts that will not stay around. Before, we did this in a very half-hearted way. Now we maintain work queues of all Decls that need to be completed before the source ASTContext can go away; we then expunge their origins completely.
fd9e34b Disable warnings from Clang correctly, by directly manipulating the diagnostics engine.
ff03cbc Fixing Python commands test cases to work even after removing Printf (and using the new syntax for printing :-)
f7c4bfc <rdar://problem/13131838>
476beee 1 breakpoint is a breakpoint not a breakpoints.
4e0557f Fixed a crash if the Objective-C runtime module wasn't loaded into the underlying process or couldn't be found.
61509d1 Updated the code signing docs.
f3c65b8 <rdar://problem/12022060>
e33bb5b Rationalize how we do Halt-ing before Destroy and Detach.
d3b4bd5 “process launch” should “detach” not “kill” if the current process was one we attached to. “process attach” should ask the same questions as process launch if there is a current process. “process connect” then “process launch” or “process attach” should actually work.
d4f95f3 <rdar://problem/11730263>
ce5a73b Making the buildbot happy again after changes to the default formatter for char[]
1ce7000 <rdar://problem/12410225>
d32acdb Hardening the vector iterator synthetic child(ren) provider against item-not-in-cluster asserts
226484d Be sure to take the mutex when the destructor is called in case other threads are using these lists and those other threads have the mutex locked.
52f1d66 <rdar://problem/13527167>
0852cbb Introduces extended register sets whose availability can vary with the target processor. - Includes a stub for AVX support in the x86-64 register context and a failing test for register sets that are unavailable.
0056637 Fix makefile build by linking needed library 'irreader'
d8f6b64 Fix the Linux build issues introduced by r178191.
473ff99 Debugserver fix for launching iOS apps who are named "com.apple.something" - the ".app" would be treated as the app bundle final characters and the SpringBoard launch would fail. <rdar://problem/13258935>
989c6f7 <rdar://problem/13412986>
4dd7f53 Protect against the case where the current inlined depth is wrong, and leads us to think we can't even get the frame at index 0. We should ALWAYS be able to get that.
29f3bea Use the error from ValidatePlan.
23ed3ad The other half of the checkin to produce better error messages when the ThreadPlanCallFunction isn't valid.
698194c RunThreadPlan should make sure the plan passed in is valid before running it.
845970e Return a useful error message from ValidatePlan if the expression can't be made for some reason.
944038e This test case was not doing the right thing with libc++ being used and was generating spurious over-completion warning flags
952e9dc <rdar://problem/13521159>
1414aba Implementing the notion of externally-acquirable ScriptInterpreter lock With this notion, if parties outside the ScriptInterpreter itself need to acquire a lock on script APIs, they can do so by a pattern like this:
28bd2c8 test commit - modified a comment
1a6ca00 <rdar://problem/13327940>
d31cd4a Added a source file needed for clang to compile in the lldb_perf_clang test.
2bba866 <rdar://problem/13327940>
25ba952 Fix a typo in help string.
914e147 Fixed a problem where inline assembly errors caused LLDB to crash.
017c16a Don't use a "uintptr_t" for the metadata key, use a "void *". This removes all of the casts that were being used and cleans the code up a bit. Also added the ability to dump the metadata.
ec1799a Prune more stuff out of the build and source folders after building clang.
981aa57 Cleaned up how LLDB.framework was being linked to and also how the target dependencies.
dea1f15 <rdar://problem/13339196>
9dc61d4 <rdar://problem/13246939>
133214f Add a way to dump a ClangASTType to stdout for debugging purposes.
aa08062 Trim the output build folder a bit to it isn't so large.
2194e9d A few more tweaks to the python perf tests. Now there is a MemoryMeasurement.
f88bf3d Clean up logging a bit to not log when a command pipe is opened when “lldb object” logging is on.
23fde4e Data formatters cleanup: - Making an error message more consistent - Ensuring the element size is not zero before using it in a modulus - Properly using target settings to cap the std::list element count - Removing spurious element size calculations that were unused - Removing spurious capping in std::map
7002d45 Don't crash when we have an element size of zero.
1b751dc That wasn't a typo, if the short letter option is from a non-obvious source, I capitolize it in the help as an aid to memory.
c3f5cd8 Our commands that end up displaying a ValueObject as part of their workflow use OptionGroupValueObjectDisplay as their currency for deciding the final representation ValueObjects themselves use DumpValueObjectOptions as the currency for the same purpose
094e2a9 Change the stepping test to output "total time" for the step as well.
afee498 Fixed a typo.
e7d8c6e Remove FunctionProfiler and ProfileObjectiveC action classes as they are not used.
b4fe227 <rdar://problem/13502196>
2938217 <rdar://problem/13502196>
0b51bed Make the stepping perf test case actually work.
731493d <rdar://problem/13221060>
76fb323 Checking that the wrong syntax does not give a correct summary after clearing the error messages here
59b96d5 Modified patch from Prabhat Verma to enable loading core files through the SBTarget API.
d373fe0 Fix the buildbot so a LLDB test doesn't fail looking for "<invalid usage of pointer value as object>".
c2676e8 <rdar://problem/13498879>
2a647e4 <rdar://problem/13498504>
8aab31c <rdar://problem/13404009>
0c074cb <rdar://problem/13365424>
ad6cddf <rdar://problem/13434476>
9fe380e Fixed a potential crash if layout for a structure went wrong and we tried to get layout information that wasn't there.
5cc975b These test cases fail on the buildbot - skip on Linux for now, will figure out why
f734066 - Masking out SBCommandReturnObject::Printf() from the Python layer because SWIG and varargs do not get along well. It is replaced by a Print("str") call which is equivalent to Printf("%s","str") - Providing file-like behavior for SBStream with appropriate extension write() and flush() calls, plus documenting that these are only meant and only exist for Python Documenting the file-like behavior on our website
f44636b Add two additional DNBLog's in places where we're about to kill off the inferior process so we stand a better chance of understanding what caused us to send a PT_KILL. <rdar://problem/12720340>
42077d9 Set the correct byte size for complex integer (-fI) memory reads. <rdar://problem/12281172>
dcb6c43 And then again only compute the more expensive piece of data if need be :-)
c263cff Added a python version of the performance tests. It will be good to see if the overhead of python interferes at all with our performance readings. We can try things out with this script and see how things go.
6aac844 Invert two condition checks to evaluate them in cheapest-to-more-expensive order
073ce17 Added better measurements to test: - memory delta and time for: target create - memory delta and time for: setting breakpoint at main by name - time to launch and hit bp at main - overall memory of target create + bp main + run to main - ovarall time of target create + bp main + run to main
3ceae46 <rdar://problem/13312903>
60dd527 <rdar://problem/13315663> commands of the form frame variable -f c-string foo where foo is an arbitrary pointer (e.g. void*) now do the right thing, i.e. they deref the pointer and try to get a c-string at the pointed address instead of dumping the pointer bytes as a string. the old behavior is used as a fallback if things don’t go well
5365753 If there are multiple uses of an Objective-C class symbol in the same expression, handle all of them instead of just the first one.
986a750 Only get the script interpreter if we find scripting resources in the symbol file. This helps us avoid initializing python when it isn't needed.
9eead7d Don't need to resolve the .o file path.
1c31631 Make sure the "Release" builds link against the "Release" LLDB.framework and also output the results to /dev/stdout when no outfile is supplied.
7dd846a Change debugserver to open the socket it listens to in INADDR_LOOPBACK mode by default ("localhost only") instead of INADDR_ANY ("accept connections from any system").
2ac1c69 Fix a little fallout from the changes in r174757 where we would skip every other float/double/long double as we extracted data from a buffer. <rdar://problem/13485062>
7b48427 Don't bother calling Reserve on the vector unless we have entries to be added.
2d63ae1 Add a Reserve method to RangeVector and RangeDataVector. Have the DWARFCallFrameInfo method which returns a RangeVector pre-size the vector based on the number of entries it will be adding insted of growing the vector as items are added.
ca107c2 Added option parsing to the lldb_perf_clang performance test.
d2c50b1 More cleanup to remove the CoreFoundation classes out of mainstream code (CFCMutableDictionary, CFCMutableArray, CFCString, etc). Now it is only used in the Results.cpp file for Apple builds only.
9de4dec Much more cleanup on the performance testing infrastructure: - Added new abtract Results class to keep CoreFoundation out of the tests. There are many subclasses for different settings: Results::Result::Dictionary Results::Result::Array Results::Result::Unsigned Results::Result::Double Results::Result::String - Gauge<T> can now write themselves out via a templatized write to results function: template <class T> Results::ResultSP GetResult (const char *description, T value);
b6b7f3e Change the AppleObjCTrampolineHandler to always run all threads when resolving the target of an ObjC method call. Add a StopOthers method to AppleThreadPlanStepThroughObjCTrampoline, don't rely on the setting in the ThreadPlanToCallFunction, since that gets pushed too late to determine which threads will continue.
825a96a Don't try to read the eh_frame section out of a dSYM. It won't have one and it isn't needed.
40960a7 Modified the way we report fields of records. Clang requires them to have complete types, but we were previously only completing them if they were of tag or Objective-C object types.
1f31c24 If we stopped but no threads had a reason for stopping, we should tell the user about it rather than continuing.
313f5bd Remove some commented out code.
44ef1bf Select correct -std flag for CMake for different versions of gcc.
a3df3b0 The outline of the stepping perf test case, doesn't do anything yet.
d3a8d65 Add correct file headers to all source files.
d793839 Add a new method GetFunctionAddressAndSizeVector to DWARFCallFrameInfo. This returns a vector of <file address, size> entries for all of the functions in the module that have an eh_frame FDE.
75fc5a7 Modify code to adhere to LLDB coding conventions.
2d09840 Added a lldb-perf test case that will be used to time various aspects of debugging clang with LLDB.
4bc4078 Fixed the ValidOffsetForDataOfSize() to use simpler logic. Fixed DataExtractor::BytesLeft() to return the correct value.
3c6f517 Simplify the logic for DNBDataRef::ValidOffsetForDataOfSize() and DNBDataRef::ValidOffset() functions.
21ac3cb Making a manual mode of operation for measurements, where you can manually call start() and stop() instead of using the function-call syntax This is especially useful to take measurements that span multiple test steps, or where you need to have different operations fall under the same measurement
e62d448 Making the test step count a member variable so that it can be accessed easily
3ffb7ed Renaming perf. main files from main.cpp to something meaningful
c953b56 Change DWARFCallFrameInfo from using a vector of AddressRanges to track the EH FDEs for the functions in a module to using a RangeDataVector, a more light-weight data structure that only refers to File addresses. Makes the initial FDE scan about 3x faster, uses less memory. <rdar://problem/13465650>
53bba61 Making MemoryGauge work by fixing a Mach API call mistake - saving (and dumping) more information out of the task_info call
3584d74 Add Linux support for reading/writing extended register sets.
3dc2a5b Cleanup to the ObjC runtime to remove the now useless ClassDescriptor_Invalid
597c0de Update source/DataFormatters/CMakeLists.txt to reflect actual source files.
84cd59b Update source/Expression/CMakeLists.txt to reflect actual source files.
8202fe2 Updated the IRExecutionUnit to keep local copies of the data it writes down into the process even if the process doesn't exist. This will allow the IR interpreter to access static data allocated on the expression's behalf.
cc5d274 The formatters for std::shared_ptr, std::weak_ptr, std::list, std::vector and std::map as provided by libc++ are now written in C++ instead of Python std::deque is still in Python but is much less commonly used
55f595f Mark TestChangeValueAPI.py as expected fail with gcc as it still reproduces.
2002c03 Update Sketch test case to capture this and use accessors for debugger, target, process and thread.
166b89f Fixed incorrect python that was trying to validate that we got a valid lldb.SBThread object by checking to see if it is equal to "None".
91c570a More cleanup on the lldb-perf code: - 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)
583f15d Fixed handling of function pointers in the IR interpreter. They now have correct values, even when the process is not running.
cba09f6 This checkin removes the last Cocoa formatters that were implemented in Python and reimplements them in C++. The Python Cocoa formatters are not shipped as part of LLDB anymore, but still exist in the source repository for user reference. Python formatters still exist for STL classes and users can still define their own Python formatters
535f53c <rdar://problem/13443931>
1cf3da8 Refactored the expression parser so that the IR and the JITted code are managed by a standalone class that handles memory management itself.
5ae5ae0 Fixed the README to match the current code.
6fd5010 Add a comment about how to add a target for a test case.
788bb8d Move the performance test cases into their own project.
af22250 Code cleanup: - don't use preprocessor macros - use switch statements - don't put anything in the lldb namespace, use "lldb_perf" namespace. - Pass the action struct into each TestStep() for each step fill in - Modify the ActionWanted class to have accessors to make the continue, next, finish, kill instead of using preproc macros
3863dd0 When built with cmake, only call the string functions when the previous commands (utils/GetSourceVersion & utils/GetRepositoryPath successed). Otherwise, they fail when not launched from a repository
5782dae C++ formatters for NSTimeZone and for CFBitVector
3818e6a NS(Mutable)IndexSet formatter moves from Python to C++
dc1df6b Converting more data formatters to C++ - NSBundle, CFBinaryHeap, NSMachPort and NSNotification
1e911a0 <rdar://problem/13194155>
a924b19 Performance improvements to the IsObjCNil () - we only try to resolve the value if the variable under consideration truly is an “Objective-C thing” This also changes the ClangASTContext to make sure that id is correctly marked as being such an ObjC thing
1902768 <rdar://problem/13100435>
d86cf81 Convert the -a option in "image lookup" to a address-expression, and pass the context in the -a address expression lookup in "image list" so that it actually works.
bc8cdff Rework TestChangedValueAPI.py to account for gcc setting multiple breakpoints.
9ae0efc Make the conditional break test case a little more robust.
056d0c1 The regular expression command object was resetting the execution context of the resolved command, which it should not do. It should adopt whatever context the regular expression command was called with. This was causing regular expression commands run inside breakpoint commands to adopt the currently selected context, not the one coming from the breakpoint that we hit.
711a5b1 Fix Makefile.rules where no icc is installed and -C gcc is used.
4842d27 Rollback r177173. Some OSs may not have ptrace extensions which lldb expects when building. This needs to be accounted for.
57d4ab2 Add icc support to the test suite -adds icc to the lit of compilers to run the tests -adds icc test decorators -skip TestAnonymous.py for icc
63c25ee Add ptrace extensions to query a register set.
280b30f Porting the Objective-C Class data type’s summary from Python to C++
b70c6ef Moving CFBag and NSBundle summaries from Python to C++
41b5bfe <rdar://problem/13194155>
eff8320 Rolled back r176719 because settings with file names were broken.
a01b0fa <rdar://problem/12537646>
34a96b8 Log the match substring as well in the case where we match the step-avoid regexp.
5c38c31 Add some logging to track cases where “step-in” steps out due to the avoid-regexp and the step-in target.
a7cd95d Recommit lldb realtime output for POSIX. -Adds workaround for assertion in lldb for TestEvents.py
7a969e6 Make a README file with an introduction and basic directions for the lldb-perf infrastructure
c50fc4b <rdar://problem/13228487>
fe6dc6e <rdar://problem/13421412>
ae31fae Fixed a problem where we didn't return TypedefNameDecls when clang asked for them by name.
dddb1dd <rdar://problem/13413693>
38cf9f7 Backout POSIX realtime lldb output. TestEvents.py is causing lldb to assert.
a53a769 <rdar://problem/13415471>
f1c01a8 Add braces to crashed test summary (needed for buildbots to detect crashes)
e27cafb Remove extra whitespace
d76b889 Prepend "FAIL:" string to tests that crash so that buildbots pick them up.
2b606ab Minor LLDB test improvements - fix TestCPPBool (was failing with some versions of GCC due to num_breakpoint_locations) - speed up tests by skipping git/svn revision parsing by the test harness when running in lit-compatible (parsable) mode
b1f44b3 <rdar://problem/13404189>
7ddd062 <rdar://problem/13396207>
5e0e372 Add a target setting (target.use-fast-stepping) to control using the "run to next branch" stepping algorithm.
3aaa2c2 The step by running from branch to branch pretty much works with this checkin (at least for x86_64) but is still turned off, it needs more qualification. If you want to play with it, change the initialization of m_use_fast_step to true.
8741df3 DoesBranch needs to compute the instruction if it isn't already done. Handle the "alternate_isa" correctly.
d5dc67a More cleanup, remove an untrue comment.
7314746 Remove an unused #include.
66e0e58 Don't use the fact that we stopped with a "Breakpoint" stop reason to decide to step over the breakpoint. It's better to check directly whether there is a breakpoint site at the PC.
d93d69d Add a missing check for getting a NULL oso module back from GetModuleByCompUnitInfo.
b649f7f Various fixes for armv7 floating point/vector register support. Drop the old f registers from debugserver's register list. Add the NEON 128-bit q registers to debugserver, support reading and writing. Add the new contains / invalidates mappings for the s, d, and q registers so lldb will know what registers overlay what other registers. Change the default format of s and d registers to be floating point instead of hex. Remove some UTF-8 hyphen chars in comments in the ARM register number definition headers. <rdar://problem/13121797>
d7d583f Add a missing call to GetFileRangeMap. It's absence was causing debug info from .o files to sometimes not get processed.
d9c7d40 Switch from CreateTypeSourceInfo, which allocates uninitialized memory, to getTrivialTypeSourceInfo, which initializes its memory, when creating trivial TypeSourceInfos.
e5bc8c1 Misc. clang build warning fixes.
fd24bb5 For file & line breakpoints, if there are subsets of contiguous line table entries for the specified line, set the breakpoint on the first one of each of the contiguous sub-sets of entries, and not all the others.
eb9e262 The default configuration should be Debug, not DebugClang.
cc464d3 Updated the register numbering base documentation for the "gcc", "dwarf", "container-regs" and "invalidate-regs" key/value responses to the "qRegisterInfo" packet.
f39af4c Created a sample "jump" command that handles GDB-style linespecs. This command allows changing the PC without manually looking up the new address.
e838134 Change Linux/POSIX to output inferior output in realtime.
19784bd Buildbot was failing to build. I guess classes declared in implementation files are treated differently on various compilers causing a "friend class Foo;" to fail for forward declared classes in global namespace.
d96df0a <rdar://problem/13372857>
4b8a5d3 Xcode seems to want these lines added to the project file.
38de544 Match the new declaration of clang::ASTContext::getFunctionType introduced in clang r176726. Fix the build of lldb
aed5961 Remove use of the ARMDisassembler framework from DNBArchImplARM. This framework is no longer around; all armv7 devices support using hardware breakpoints to instruction single step.
4340ff2 Also remove actual link against the ARMDisassembler framework from debugserver's build settings.
b73ebdf We don't need to specify the VALID_ARCHS in the xcode project file. Also, don't build debugserver with -DUSE_ARM_DISASSEMBLER_FRAMEWORK - that framework isn't around at this point.
3019c8e Remove my print statements I was using for debugging.
ca97fbb <rdar://problem/13384282>
62afa49 Made LLDB work with the latest Clang. Also fixed an assertion due to non-implicit Objective-C methods without source locations.
b8e0055 Fix a reversed test for "for_expression" in creating C++ exception breakpoints. Add a missing "break" in processing the -h option to "breakpoint set".
44433eb Fix assert in RegisterValue::SetBytes if we're trying to write a 32-byte value into a 32-byte ymm vector reg - that is allowed. <rdar://problem/13350587>
cc1d4bf Removed One Definition Rule warnings because they're noisy when dealing with anonymous structs.
c2fe09b <rdar://problem/13361742>
5243ff8 OptionValueFileSpec shouldn't be doing argument parsing on the file name it gets. That confuses it if there are spaces in the file name.
385a504 Dump the measurements directly instead of getting their metrics first (this code needs to be pushed up so that in the basic scenarios TestCase knows to dump all its measurements directly)
f5af85a Initial checkin of a new project: LLDB Performance Testing Infrastructure
6741173 Added very lightweight, statically-allocated counters for a variety of metrics associated with expression parsing. This should give some idea of how much work the expression parser is doing on Clang's behalf, and help with hopefully reducing that load over time.
9ab14e1 Update PlatformDarwin to understand how armv7m / armv7em relate to the other armv7 types as far as compatibility/interchangability goes. <rdar://problem/13361372>
be38b45 <rdar://problem/13374267>
9c09181 <rdar://problem/13119621>
2099b6a Add recognition of two more armv7 variants, armv7m and armv7em. <rdar://problem/13361372>
d256f79 Add a comment to break disable's help to make clearer the relationship between the enable/disable state of a breakpoint, and of its locations.
e2f06c3 Typeo in warning message.
6778c99 Updated Apple LLDB version to lldb-300.99.0. Also updated the build system to support the new Apple LLDB versioning scheme.
b785a4c Fix enum_types test on Linux - Required flag "-std=c++11" needs to be set before including Makefile.rules
e1dd3e5 Fix issue that causes linux buildbots to ignore errors - change string "ERROR" to "FAIL" to match clang lit test results
2a22964 Added new properties to lldb.SBModule classes:
5978746 Stop the "module" property from throwing an exception when the module name was not found in the target module list.
c9c53bc Added a new module that can dump all line tables for all compile units in any modules that are specified as arguments to the "dump_module_line_tables" command.
3b75ec0 Clean up LLDB CMake build output - remove "-debug" flag from swig scripts - use "echo -n" instead of "echo" in dummy target to avoid printing a useless newline
ab3d87a Fix running of LLDB tests with cmake+ninja+ccache - Avoid passing 'ccache' as the test compiler. Instead, use first arg after ccache.
d7982f8 Fix Linux i386 build - missing definitions were causing different definitions of type 'off_t', resulting in linker errors - fix is to define _LARGEFILE_SOURCE and _FILE_OFFSET_BITS=64
e3ee59b <rdar://problem/13119170>
a48b8eb <rdar://problem/13362109>
9badb6c Remove some tabs and extraneous space chars from ObjectFileMachO.cpp. Noticed these while working on the last commit.
6bcabae Retrieve the dyld shared cache mapping offset from the shared cache instead of hardcoding the value. Read the version number of the dyld shared cache. <rdar://problem/13311882>
d962c7e Skipping TestConstVariables on Linux.
0e8e6f2 Added tests to test for "settings set" with trailing whitespaces after the values.
90f5f50 Adding support for DW_OP_stack_value in DWARFExpression::Evaluate
b0162d8 Added a little bit of logging to ClangFunction to make it more obvious what's going on.
72398fd Add support for non-register scalar values in DoMaterializeOneVariable.
247bc3a Improve/Cleanup ptrace wrapper and remove dependency on user.h
d8d97f5 Fixed enum printing for negative enums. There previously was no testing to validate that enum values were being displayed correctly.
48c6b33 Fixed test suite errors due to new clang -v output.
8014368 Now that "settings set" will strip leading and trailing spaces, we need a way to be able to specify string values that contain spaces. So now settings setting <property> <value>" can have a <value> that is quoted:
c905136 Disable JITed code in any processes that use DynamicLoaderStatic.
d5e48bd <rdar://problem/13341472>
b4b4081 <rdar://problem/13184855>
d284d1b Be more precise in GCC/autoconf build instructions about compiler versions
66fd7b1 Typos: be more precise on the build page when mentioning the non-cmake build system
02c106f Add instructions for building LLDB with CMake - suported generators: Ninja and Unix Makefiles - added instructions to run tests when building with autoconf
0856107 Fix Ninja LLDB build on Linux (via cmake -G Ninja) - resolved circular dependency issue by making liblldb depend directly on LLDBWrapPython.cpp - removed use of '..' for relative directories -- ninja doesn't like this - fixed build-order problem
9e0f5be Add support on POSIX to determine if an inferior has changed while debugging it.
1d9c802 Fix ivar ordering for Process ctor to match the order they're declared in the .h file.
dbd73cf Un-skipping tests affected by llvm.org/pr15256
4a1c7c6 Fix makefile and re-enable test disabled due to llvm.org/pr15256 - fix is: don't pass incompatible -stdlib option when building with GCC
464a506 <rdar://problem/13338643>
cec43ab <rdar://problem/13338758>
72374e3 <rdar://problem/12897838>
cd0dd8f ProcessMachCore had (until 2013-01-29) some simple checks to find a kernel in a core file if it didn't start at the beginning of a memory segment. I added more sophisticated kernel location code to DynamicLoaderDarwinKernel and removed the simple one in ProcessMachCore. Unfortunately the kernel DynamicLoader doesn't get a chance to search around in memory unless there's a hint that this might be a kernel debug session. It was easy ot make the kernel location code static in DynamicLoaderDarwinKernel and call it from ProcessMachCore on the start of the session, so that's what I did. <rdar://problem/13326647>
7d40838 Convert from the C-based LLVM Disassembler shim to the full MC Disassembler API's. Calculate "can branch" using the MC API's rather than our hand-rolled regex'es. As extra credit, allow setting the disassembly flavor for x86 based architectures to intel or att.
eb17530 Move m_destroy_in_process to Process (from ProcessKDP) since it is generally useful, and use it to keep from doing the OS Plugin UpdateThreadList while destroying, since if that does anything that requires the API lock it may deadlock against whoever is running the Process::Destroy.
a5d313d Add a test case for static member variables - expected to fail across the board due to llvm.org/pr15401
7012548 Fix string warning I introduced with indirect function support.
e1588aa Update TestCallStdStringFunction to expected fail for gcc and account for multiple breakpoint locations.
cc2cffe Patch from Andrew Fish to add recognition of some additional KDP packets.
46198d4 Add the standard LLVM copyright notice to the top of these two new files.
88f7e75 Report the kernel slide when attaching to a darwin kernel debug session.
137c4d7 Finish up CMake support for LLDB (tested on Linux) - add missing scripts (driver, tests, etc...) - enable running of tests from cmake with "make check-lldb" target - fix up problem with clang dependencies (this enables parallel builds) - implement platform-specific FIXMEs in source/CMakeLists.txt
15905ae Use the Error parameter in ValueObject::ReadPointedString to actually report common errors
97b18f8 breakpoint command add currently doesn't support adding commands to more than one breakpoint at a time. Enforce this for now (we should relax the requirement when we have a little more time.)
36451fa Replace all "-gdwarf-2" with "-g" to use the compiler defaults.
5e4adbf Fix the getCompilerVersion() function to do the right thing with clang 5.0 which now says "LLVM version" instead of "clang version".
02901dc Fixed an issue where the LDFLAGS were not correctly gettting modified to be additive.
54ad8cf Made lldb.cpp build with clang 5.0.
7b98e13 Update CMakeLists.txt as per removed file
3dd21ab Remove LLDB dependency on xcodeworkspace (on Linux) for version number - make LLDB version number match Clang (and the Debian package) - use the same revision detection magic that Clang uses to report SVN/Git revisions - update test case as per above
3a05d89 Add the libdebugserver.cpp for creating a library that does debugserver work. There isn't any target in the xcode project file which will build this yet.
3732a02 Fixed some problems with type deportation:
fe9d7bf Fixing the log line for SBValue::MightHaveChildren() to report the correct function name
cc28859 the log entry for SBThread::GetProcess() would not include the pointer to the process because we were using the value of the (otherwise unused) process_sp - instead of fetching the SP from sb_process
6f0165b Fixed a case where the result of std::string's c_str() method was being called on a local variable and returned as a const char * incorrectly. We used to cache the thread names for threads in the current host process, but we shoudn't be caching that as the names can change over time, so now a std::string is returned from Host::GetThreadName().
0688435 Added eSymbolTypeResolver to a few switch statements that needed it.
4f9103f Add GNU indirect function support in expressions for Linux.
6e46a3e Call Process::Finalize directly in Debugger::Destroy, rather than having it done in the Process destructor. Doing it there can be too late depending on what the internal state and ProcessGDBRemote Async threads are doing.
54fcf68 Cleanup TestUniqueTypes.py and add getCompilerVersion() to test harness - pull up logic to get compiler version from TestUniqueTypes.py into lldbtest.py - work around an GCC 4.6.3 issue
6699c6e When starting a kernel debug session, if the user specified an executable binary to lldb already check that the UUID of that binary and the UUID of the kernel binary in memory match. Warn if they don't. <rdar://problem/13184784>
56e2c56 <rdar://problem/13289828>
549ce88 Fix one remaining mach port number/globally unique thread ID mixup which prevented queue names from being fetched correctly. <rdar://problem/13290877>
17a0b56 <rdar://problem/13287629>
edc4ddb Mark a few more tests as "basic_process".
6569003 Add links to buildbots on the LLDB build instructions page
744dd79 Backed out a hacky fix that is no longer needed.
89a86ef A quick variable rename Sean and I had discussed earlier to make things a bit clearer.
d3beda6 Fixed several problems with class uniq'ing in the SymbolFileDWARF code:
363141f Removing leftover printf() statement
7cb80c9 If the user has disabled kext loading with the plugin.dynamic-loader.darwin-kernel.load-kexts setting, don't print any messages about loading the kexts (which isn't being done) and don't read the Mach-O headers out of memory (which can be slow and they're not being used for anything at this point).
436ca2c <rdar://problem/13289157>
560829d <rdar://problem/13282582>
60139f3 Fix the .categories, it had "dataformatter" not "dataformatters". Remove the getCategory from TestDataFormatterObjC.py, since it was superceded by the .categories file, and didn't work anyway (getCategories currently has to be a method on the test class, not on the test.) Add a "basic_process" category, and start to find some tests for simple process running sniff tests.
06bdbaf Being explicit about how ignoring optparse's exceptions is not a best principle
06925c9 <rdar://problem/13281528>
d6445b0 Added missing lldb module namespace.
9d66551 Skip test that fails intermittently with Clang/GCC on Linux - was causing buildbot failures due to unexpected pass
ade70cf Optimization of the code-running NSDictionary formatter to skip runtime symbol fetching
afa3138 <rdar://problem/13286937>
643adf8 Add a log line when debugserver exits, and clean up some of the other standard logs output to make it more useful.
4eff6fc <rdar://problem/13282582>
a7e864c <rdar://problem/13265297>
4a5dfcf Fix a handful of remaining assumptions that thread IDs were 32-bits in the gdb-remote Process plugin files.
786e873 This should get clang/gcc decorators working
4d82e97 Fixing issues in previous checkin - still figuring out how to make expectedFailureClang take the bugnumber
596ba5e Remove no-op code (since r175842)
21416a1 <rdar://problem/12362092>
647718e <rdar://problem/13277100>
a7cb663 Correct the logic in DumpCommandHistory when the end index is UINT32_MAX.
2eaca13 Call el_resize when the window size changes.
04ce77f <rdar://problem/13190981>
8b24f65 The thread plans run before the event is broadcast, so they should be calling ShouldStopSynchronous on any Stop Info's they want to check. The full ShouldStop should only be called on the public side of the event system.
2df4d9f Mark last known Linux failure as XFAIL to see if there's any other problems with buildbots.
24c8029 If we crash while making a Python summary, the crash info will tell us more about it
4fd6f36 Remove unintended comment.
44eb9fb Change debugserver from using the mach port number (in debugserver's own port namepsace) as the thread identifier to using the system-wide globally unique thread id as the thread identifier number.
3801be7 Using __package__ and __name__ seems redundant - __name__ should always contain the fully qualified module name
45fa511 Fixing the watchpoint test case to reflect changes in error reporting
c29f0f3 Make the lldbtest tear down routine a little less error prone - replace "catch-all" except clause with one that specifically catches what pexpect throws - handle case where child is already terminated (or is terminating) by the time tear-down is run
ebb8444 Ignore the check for com.apple.main-thread - it is not critical for the test case's logic
b703112 The summary for const char* was not cascading. This was preventing us from providing a summary for the result of std::string.c_str() with libc++
dac0683 If the inferior program is compiled with libc++, you won't see libstdc++
e9a5a50 <rdar://problem/13265017>
fe21d4f Fix clang warnings related to python macro redefinition and printf format specifiers.
1930d5d Change to JITDefault code model for ELF targets
d9d3692 Fix TestPublicAPIHeaders test on machines that have [DY]LD_LIBRARY_PATH that must be preserved.
3efa429 Update INSTALL.txt to mention LLDB builds on Linux with GCC or Clang.
5f21739 Previous commit was bogus (testing)
b8b7e97 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175810 91177308-0d34-0410-b5e6-96231b3b80d8
f5c74cd Mark test as expected-to-fail with GCC because some versions emit DWARF that claims functions start at the line with the "{" character, whereas clang uses the first line with source code. As such, this test case will only work with clang.
7658008 Hardening in case a thread's frames are missing.
d7470c2 Skip another two test cases on Linux that are affected by llvm.org/pr14637
004ccb3 Fix CommandObjectMultiword to initialize all members, and beef up corresponding test case.
33cf3f0 Update CMake lists of sources to include files added in r175787 and r175323
aebeefd Adding CMake build system to LLDB. Some known issues remain: - 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
8ea4878 Fixed a case where a stack frame could lose track of its own target.
f3a217e Cleanup of the NSString data formatter
32d7ee3 <rdar://problem/4529976>
375df41 Mark the command as failed if parsing fails.
b989d78 <rdar://problem/13259230>
6e612c3 Add some documentation on how HandleCommand work.
76695d3 If you say (lldb) frame variable without first launching the inferior, you get: error: invalid frame
d30aea2 Fixed a bug where certain vector code didn't work on i386. Now we let the JIT emit SSE/SSE2 instructions on i386.
d04a76b *ahem* Enrico.
d441807 Mention "return" -> "thread return"
1ae3bf6 Change ELF relocation model to static
f2025c2 Add logging of which test cases are run (through dosep) to help diagnose any hangs/crashes in the buildbots.
5d77077 Fix invalid TestBitfields case (thanks Filipe!), and xfail one case due to GCC compiler bug.
e2cc60e Skip TestCompletion case that fails on linux (with gcc) because the input prompt is not displayed (llvm.org/pr14637)
a964b09 Fix TestPublicAPIHeaders test on Linux. -Change the build_dir variable name to lib_dir -Set lib_dir to the correct location on Linux -Set LD_EXTRAS to the actual lldb library
12f564b Handle the case where the runtime uses class_getMethodImplementation for both scalar and structure return methods.
2476557 Fix a bug that causes dotest.py to exit with a passing exit-code, even if some tests fail - occurs when multiple compilers/architectures are tested (via -C or -A flags)
3e94733 Fix a problem with the const_variables test case (another lldb bug remains) - make the test case step past the location where 'index' is initialized, otherwise its value cannot be printed (verified gcc 4.6/4.7 and recent clang) - "Couldn't materialize struct" error from LLDB still prevents this test case from passing
d627d4f Lastly, a few synthetic children classes for Cocoa are available
5e536c4 And the NSString formatter is not Python anymore
1459660 Data formatters are not a *recent* addition...
63aef96 Fixing a potential crasher where a synthetic value could return itself as its static value
9da225f If RunThreadPlan is called on a thread that doesn't have a selected frame, select frame 0.
80c9a88 <rdar://problem/13147878> Be more user-friendly about not having scripting enabled: a) if Python was built-out then tell people about it explicitly b) if we are told to use none as a scripting language, then tell people about that too
e0a95d9 ValueObjectSynthetic could be wrapping a ValueObjectDynamic. In that case, we want to report that the ValueObject is dynamic since synthetic values are supposed to be just their parent with different children
75f260a Make the progress bar opt in (using the -P option.)
3ad5647 A few more GCC specific test fixes as per logged PRs: - TestNamespace expected to fail due to PR-15302 - TestCPPBool and TestUnsignedTypes updated to handle GCC style debug information - TestRvalueReferences expected fail due to GCC (4.7) not outputting rvalue-reference debug information - TestDataFormatterStdVBool expected to fail due to PR-15301
78a3dd2 Fix Makefile bug preventing tests from running when building lldb with ccache
874378d Updated to support latest Clang option naming.
253dbb4 Add i386 register support for the x86_64 RegisterContext plugin. This allows debugging a 32-bit inferior on 64-bit lldb/host.
8b5c29d Minor test runner improvemenst - rework the way SBDebugger.SetAsync() is used to avoid side effects (reset original value at TearDownHook) - refactor expectedFailureClang (and add expectedFailureGcc decorator) - mark TestChangeValueAPI.py as expectedFailureGcc due to PR-15039
306f061 Update TestVBool Makefile to allow building test program with gcc - do not pass (incompatible option) -stdlib=libstdc++ option if using GCC as test compiler
970f5c5 Update Makefile to use build-compiler (CC) for LLDB testing - Should allow tests to run without 'clang' installed
d79d625 Fix a case where a kext module was being added to the Target twice.
2c529b1 Change the order that the DarwinKernel DynamicLoader plugin uses to search for kexts on the local system -- the ModuleList FindModule() method is the best first attempt, only call Symbols::DownloadObjectAndSymbolFile() if that has failed and this is the kernel binary which really needs to have its symbols located.
fcd9bf1 Experiment with printing a warning message when lldb is unable to find a binary on the debugger-host during a kernel debug session for a kernel extension (kext). This may prove to be too verbose in typical usage, particularly if there are many third-party kexts. We'll try this and see how it works.
0d31111 Always print the kernel UUID and load address if we are working with a kernel binary - even if we can't find the symbol-rich binary or dSYM on the debugger-system. Print a warning if the symbol-rich binary cannot be located. This more closely emulates the gdb behavior when a kernel debug session failed to locate a kernel binary.
32a4528 Change the DarwinKernel DyanmicLoader to maintain a persist list of kernel extensions (kexts) that have been loaded into the kernel. Now when we hit the "kexts have changed" breakpoint we can avoid adding kexts multiple times, and can properly detect kext unloads and remove them from the Target's list of modules.
04d3bb2 Fixing the lack of a space in an expression that was causing sheer unhappiness.
b437786 NSWindows should only be created after you have an NSApplication
fa3a670 <rdar://problem/12529957>
132c49a Added a host call to get the number of CPUs. It should work on all POSIX unixes, linux and Windows.
db083f6 <rdar://problem/13121056>
3fb2c93 Added a kqueue class which isn't being used yet, but was part of trying to work around the limitations with the unix select() call and how it is limited to FD_SETSIZE file descriptors.
d3eb837 Include a small argparse compatibility layer for Python < 2.7
cc63342 Get rid of a warning.
ea68753 NSSet formatter is now C++ code Split some NS* formatters in their own source files Refactored a utility function for the C++ formatters to use Fixed the skip-summary test case to be explicit about requiring libstdc++ for operation
5aff015 Fixes in the IRInterpreter:
361eb43 Improve test harness for the buildbots - Add a "parsable" mode to dotest.py that outputs test results in exactly the same format as clang's lit tests - Improve dosep script to output list of failing tests (output should look like clang test failure summaries) - Cleanup lldb/test/Makefile to remove needless parameters and environment variables - Switch makefile tests to use parsable-mode output; should make the buildbot results parsable - Switch makefile tests to use dosep to log catch crashing tests (instead of halting the test suite)
960a6ea More test case cleanup (Linux and Mac): - remove expectedFailure decorator from resolved rdar 12566646 and 10887661 - remove expectedFailure from TestBitfields testcase not actually affected by bug - skip the (non-deterministic) TestStopHookMechanism.py to avoid a noisy suite on Linux
5c5f01b Fix misuse of python subprocess module (caused "leaking" processes and garbling the terminal) - fixed cleanup of Popen objects by pushing spawn logic into test Base and out of test cases - connect subprocess stdin to PIPE (rather than the parent's STDIN) to fix silent terminal issue
52d8dd9 Rename [Enable|Disable]Breakpoint() to [Enable|Disable]BreakpointSite() in POSIX plugin - needed due to r175241
dcd2a56 Linux test case cleanup: - Enable TestFormatters.py: expressions with "new" work - Enable TestChangeValueAPI.py: llvm.org/PR15039 fixed - Disable expression_command/call-restarts due to llvm.org/PR15278 - Disable expression_command/call-throws due to ObjC test program
21120ec Added missing include.
d85fab9 Only enable RTTI for cxa_demangle.cpp
efb4aeb A little cleanup. {Disable/Enable}Breakpoint actually disables/enables BreakpointSites not breakpoints, it is confusing to have it not named appropriately. Also in StopInfoMachException, we aren't testing for software or not software, just whether the thing is a breakpoint we set. So don't use "software"...
7721589 Daniel Malea caught an issue where calling dotest.py with an invalid directory would cause the progressbar init code to raise an exception This commit fixes it
1f9df78 <rdar://problem/13204647>
bec0330 Fix TestSBData.py test case (tested fix Linux/Mac) - stop ignoring the error-codes in the 'error' variable - removed out-of-bounds accesses with read-only array fields such as:
876de1d Bring lldb up to date with clang revision 175141.
8e55f85 <rdar://problem/13218655>
c112da8 One to many always's.
0772b53 Mention the inline-breakpoint-strategy in the lldb-gdb.html file.
d2f3b42 <rdar://problem/13064893>
708864d Make it clear that if you #include .c/.cpp/.m/.mm etc files, you will have to change the breakpoint-inline-strategy for the breakpoints to take.
151e3be <rdar://problem/12693921>
9caf151 <rdar://problem/13207948>
68bd76f <rdar://problem/13200878>
d443bc5 <rdar://problem/13198767>
4b01c36 Add a test for handling a function call that throws an exception, and make it work.
b08d6b6 Probably should return that value we took the trouble to compute.
dae637a Fix broken testcase: ignore LLDB output that warns about more elements than can be displayed. - test could be re-written at some point, but right now just trying to clean up known failures for the linux buildbot.
d605bac Marking two tests expected-to-fail on Linux - PR-15260: lldb does not display correct value of 1-bit field - PR-16261: lldb does not display size of (file/class) static array
8459ba9 Centralized the expression prefixes that are used for both expressions and utility functions.
9bf4c4a A lot more cleanup on the AppleObjCRuntimeV2 class.
2e045fc Cleaned up and removed unused code.
23c29a1 Skip another two other tests asserting on Linux in RecordLayoutBuilder::updateExternalFieldOffset().
ce490e3 <rdar://problem/13210494>
d7d328f Skip test that causes lldb to assert due to inferior getting a SIGSEGV with si_code == SI_KERNEL (PR-15258) - crash does not always reproduce
d601e83 Allow expression evaluation to work when multiple threads exist in the inferior (on Linux) - handle m_resume_state == eStateStopped || eStateSuspended in DoResume rather than asserting
b7fd9bf Made NULL, nil, and Nil use the appropriate builtins.
0ac1f0c Improved handling for DW_AT_const_value
d288003 Skip tests that assert on Linux in RecordLayoutBuilder::updateExternalFieldOffset() - Filed bugzilla PR-15256
405ecbf Disable TestConditionalBreak.py due to Linux crash - test was passing before r174793...
c113056 Quiet "the missing case in switch statement" warnings from newer clang builds.
7a87d52 Fix document typos, indentation in python code, and API examples.
a53efae Added new "env" regular expression alias into the evironment settings section of the GDB/LLDB commands.
c06adf1 <rdar://problem/13178743>
c98abf5 <rdar://problem/13184389>
092ea40 Fix ELF parsing where undefined symbols were being added to the symbol table with the incorrect symbol type.
79e9f96 Made LLDB build with the latest Clang. This meant changing the ClangASTSource to return a bool instead of returning a list of results. Our testsuite mostly works with this change, but some minor issues may remain both on LLDB's side and on Clang's side.
edfbe45 Fixed the way the ClangExpressionDeclMap looks up variables in the current stack frame to avoid mutual recursion between the expression parser and the synthetic child providers. Variables should only be looked up in a very simple way, using no synthetic anything.
ce41b03 Minor update to Vim frontend: simplify breakpoints display (and list unresolved breakpoints)
c4392dc Forgot to add the testsuite for the changes I checked in on Friday.
88cd3fd Add Vim frontend to LLDB. - Access any LLDB CLI command in Vim by typing ":L<command>". Tab-completion works too! - See source locations for breakpoints and the current PC with vim "marks" and highlights. - Examine backtraces, locals, disassembly, registers, and breakpoints in dedicated Vim windows. - See when in-scope variables and registers change by watching for (red) highlights.
17ab954 Quick fix for the libc++ std::map synthetic children provider If you try to access any child > 0 without having touched child 0, LLDB won't be able to reconstruct type information from the debug info. Previously, we would fail. Now, we simply go fetch child 0 and then come back.
89e248f Reworked the way Process::RunThreadPlan and the ThreadPlanCallFunction interoperate to fix problems where hitting auto-continue signals while running a thread plan would cause us to lose control of the debug session.
a182573 The new progress bar mode was losing us information compared to the old dots mode in that we would have no way of knowing about test failures (short of peeking into the test result directory.. and you're not supposed to peek!)
2fd2615 Fixing a logic flaw with NSURL summary. This was caught by running the test suite in 32bit mode
bc0c5a6 <rdar://problem/13176279>
50972ae Fixed a crash when we didn't get a plist but tried to pass it to CFGetTypeID() anyway.
940ca94 Fixed 2 more issues found by the address sanitizer:
0cd3340 Fixed a store to data that isn't needed and that also could end up writing beyond the end of the buffer. This was found by the address sanitizer.
b85785c Unset the environment variables as soon as possible when running the test suite. Also don't store the unset list into a global when they aren't needed in a global variable.
979c4b5 This checkin implements the data formatter for NSURL in C++ code
f2bf274 Added the ability to specify a breakpoint using the GDB '*ADDRESS' format:
dcffc1a <rdar://problem/12898191>
9c7108f Renaming SBValueList::get() to opaque_ptr since it returns a void* instead of an usable object.
ac66920 Correct logging for function calls that return SBValueList
88d0ca9 Be sure to set the data offset to zero if we actually mmap the entire ELF file.
b7e922a Fixing stale pointer problem in ELFObjectFile
5c1700a <rdar://problem/13107151>
d6d63d6 Address sanitizer found an issue which we filed a bug for: <rdar://problem/13168967>
381549e Fixed an bug found by running LLDB with the address sanitizer! We were accessing one past the end of the buffer.
732579b Be ready for fully qualified hash names in the __apples_types tables.
4a58456 Fixed a problem that would cause LLDB to crash if it encountered bad debug information. This debug information had an Objective-C method whose selector disagreed with the true number of arguments to that method.
1503994 Removed debug print line I left in.
cbe61bd <rdar://problem/13159777>
2777b01 Fix bug in test harness to allow running dotest.py without "--executable" flag on Linux - resolves errors in cases that run the lldb CLI utility
240a2cc Fix to build tests with GCC: update makefiles in two watchpoint testcases
0433419 Fix GCC 4.6 build by avoiding delegating ctors
3cf7ab5 <rdar://problem/11109570>
c0325a3 Fixed the TestSourceManager.py test case to not fail. It was using the "list" alias which has now been turned into a regex command that mimics the GDB equivalent. Changed "list" to "source list" to get around this problem.
0bf2238 Change ObjectFileMachO::ParseSymtab to read the external function stub routine addresses from an in-memory-only MachO object file. This was the only remaining part of ParseSymtab() that was assuming a file exists. <rdar://problem/13139585>
e5ab513 Being explicit about which std c++ library these test cases need to use
0be3134 <rdar://problem/12866706>
a2653fe Remove the m_images(NULL) hack in the Target ctor now that the original issue has been fixed by r174222.
689696c <rdar://problem/12953018>
1ab639c Change CommandObjectTargetSymbolsAdd to require that a target exists; fixes crash of the form
9c81c33 Added support for the qCmd monitor packet command. Currently it can only do:
bee6cf7 Moving from std::auto_ptr<char> to std::string for simple string memory management. It is better practice and, also, it is not clear whether std::auto_ptr<> is smart enough to know about delete[] vs. delete
8f805c2 <rdar://problem/13050227>
2fb13ab <rdar://problem/12693921>
6ac5bf1 <rdar://problem/13130975>
2ddb2b8 <rdar://problem/13092722>
f99172d Correct the definition of ObjC's BOOL in our pre-canned set of defines. It's supposed to be "signed char" not "int".
dbf2fb0 Modified the expression parser's class wrapper to support reporting "this" as a templated class. The expression parser wraps expressions in C++ methods as methods with the signature
9b769d3 Make sure a value is returned for Thread::ReturnFromFrame().
ad72e52 Allow the target to give out the size of the red zone for given ABIs.
d025085 Get rid for switch statement warning for unhandled cases.
6b07628 Fixed register dumping for contained-regs.
be51f8a Add "thread return -x" to unwind the innermost user called expression (if you happen to have stopped in it due to a crash.) Make the message when you hit an crash while evaluating an expression a little clearer, and mention "thread return -x".
46be7f2 Change the default behavior for unwinding and breakpoints when running expressions.
d9da5b0 Making sure a Pythonless build of LLDB works by #ifdef-ing out formatters code.
549294a Added the ability to search segments for data. Currently __TEXT, __LINKEDIT and __PAGEZERO are excluded.
849acc8 expressions + C++11 lambdas == cooooool!!!
5ebd91b Verified that the plugin.dynamic-loader.darwin-kernel.scan-type setting is working correctly now; remove the #if 0's around its use.
a3f6534 <rdar://problem/12552374> & <rdar://problem/13100674>
53d268c llvm/Basic/ConvertUTF.h now exposes all functions without macro tricks
2a64f9a UTF conversion routines were moved from clang/Basic to llvm/Support
94c0f4c Fix one obvious thinko with the plugin.dynamic-loader.darwin-kernel.scan-type setting handling that was probably the source of the settings problem. Need to verify that it's working correctly tomorrow though.
9338dd5 <rdar://problem/12491235>
77332ba Fix build problems with libstdc++ 4.6/4.7 - remove nullptr from initialization of shared_ptrs
59d9f11 Use printf instead of echo -n (the latter won't work on OS X's /bin/sh)
edf0f06 Remove debug code and commented out code that was left in.
30c187c Continuing the fix for the r173732 fix. Now lldb gets built with Makefiles (Darwin).
f892c42 <rdar://problem/9141269>
3844c48 Actually build DataFormatters dir. Fix for the r173732 fix.
0ae26c0 <rdar://problem/13107904>
16481ab Since an address (0x12346) is an expression, be brief.
4968ad8 <rdar://problem/12552374>
4ad0490 <rdar://problem/12890171>
1f71bcf <rdar://problem/12524607>
4922935 Describe the data formatters as part of the architecture
f846c81 Adding a Makefile. Hopefully that will make the Linux buildbot happy
3c8558f Fixed a "wchar_t" typo.
f509c5e <rdar://problem/12978143>
a29021d Always define types from stdint.h so they are always available for use in expressions no matter what debug info you have. Types added are:
35f6df9 Make sure that multi-line expressions don't create a default target. We recently switched to using a built-in m_exe_ctx when running commands in the DoExecute() so that we can have common code where commands can required having a valid target/process/thread/frame by specifying flags, this caused multi-line expression to always create a new dummy target because m_exe_ctx gets cleared when DoExecute exits. A new input reader has been pushed to handle the input for the expression, which will get popped off and then it was checking the target in m_exe_ctx (which was cleared).
90b9cc8 One more change of a uint32_t variable to offset_t to match Greg's dataextractor patch, this one in some #if defined arm code.
2219738 Add comments showing the symbolic names for the exc_code types we receive with an EXC_BREAKPOINT mach exception on arm.
090f831 Add "target.process.stop-on-shared-library-events" setting, and make it work. Add the ability to give breakpoints a "kind" string, and have the StopInfoBreakpoint print that in the brief description if set. Also print the kind - if set - in the breakpoint listing. Give kinds to a bunch of the internal breakpoints. We were deleting the Mac OS X dynamic loader breakpoint as though the id we had stored away was a breakpoint site ID, but in fact it was a breakpoint id, so we never actually deleted it. Fixed that.
40aa903 Missing newline in a warning message.
5eebe94 Disable confirmation prompts for testing - set auto-confirm to false when running TestExprs (avoid hang when using API) - set prompt-on-quit to false in test helper (avoid timeout when using lldb CLI)
550a7e9 Remove hardcoded -arch from lang/cpp testcase makefiles - skip rdar12991846 (already marked expected-fail) to avoid introducing a i386 crash
2989a5a Fix buildbot building errors.
bca74e5 Fix indenting typo in TestSTL.py
6acc204 <rdar://13073234>
36da2aa <rdar://problem/13069948>
4c32029 <rdar://problem/13072285>
87a5c11 Update test scripts and Makefiles to allow testing with GCC: - introduce new variable ARCHFLAG in make/Makefile.rules to switch between "-arch" on Mac and "-m" everywhere else - update testcase makefiles to use LD_EXTRAS instead of LDFLAGS (the former interacts with Makefile.rules badly) - special treatment for gcc 4.6: replace "-std=c++11" with "-std=c++0x" as the former is not handled correctly - remove hardcoded "-arch" from test Makefile
cd630e7 Mark test cases affected by PR 15036 (GCC-generated DWARF causes parser crash) - Add new decorator "@skipIfGcc" to lldbtest.py
e8b3471 Don't listen for EXC_RESOURCE exceptions, those should really be handled by the system handler. Also put in string translations for a couple of exceptions we were missing.
9729189 Skip 32-bit testing of check_public_api_headers (on all platforms, not just Mac OS X) - since the test program needs to link with LLDB, the test is invalid in 32-bit mode.
0f9930b Marking test cases with @expectedFailureLinux as per recently opened bugs - PR 15038: missing wide char support on Linux - PR 14600 - Exception state registers not supported on Linux - PR 15039: SBProcess.GetSTDOUT() returns an empty buffer - PR 15037: stop-hooks sometimes fail to fire on Linux
4b6a267 PR14426 (breakpoint hit count incorrect) is resolved.
f74de22 Check for NULL breakpoint option thread name & queue name before comparing their values to the new value.
5dd1a28 Remove a compile time warning in RNBRemote::HandlePacket_qProcessInfo for non-x86 builds.
b5ebe11 Change the container-regs kv pair in the qRegsiterInfo reply to be hex encoded, not decimal.
1a469c7 <rdar://problem/12711206>
6dca414 lldb.thread is not to be used anymore
ae35fcb Quick fix to make LLDB TOT work with Clang TOT. Avoids an error about an ambiguous constructor call.
f2b676f Replacing a "no clue why" comment with the explanation it was demanding
522863c Clear up the documentation for the "container-regs" and "invalidate-regs" key/value pair responses for qRegisterInfo with examples of single and multiple registers for each.
679ba16 Changed the register number lists for the qRegisterInfo packet response to be raw hex to match all other register reading and writing APIs.
34e71ef Added all of the 16 and 8 bit register variants for i386.
1218c9f Updated the LLDB qRegisterInfo documentation to contain information on the new "invalidate-regs" and "container-regs" keys that can be returned in response to a qRegisterInfo packet.
c290ba4 <rdar://problem/13020634>
4535891 <rdar://problem/12437929>
e0b1ab8 <rdar://problem/12350715>
288ddfe Extended LLDB to handle blocks capturing 'self' in an Objective-C class method. Before, errors of the form
4690358 <rdar://problem/13011717>
52ebc0a <rdar://problem/13010007>
f1f2a15 Disassemble the vAttach packet.
0df19cc <rdar://problem/12976277>
2e5a477 Add code to retreive the mach port # for each thread in the inferior application's mach port namespace in addition to the mach port # in examine-threads' own port namespace, and print it (when -v is used).
c6bdc75 Made the expression handle variables with DW_AT_const_value instead of a location. Also added a testcase covering "frame variable," "expr" using the IR interpreter, and "expr" using the LLVM JIT.
cec32bb Use insert instead of emplace until support/distribution improves on some platforms (ie. Linux).
7d96ecc <rdar://problem/12243932> Change RNBSocket from using lockdown's lockdown_secure_checkin() function to using lockdown's secure_lockdown_checkin() function.
287b4f4 The wchar_t and char1632_t test cases were erroneously running as x86_64 only even if you tried to run them in i386 mode
dcb36c7 <rdar://problem/12786725>
c4f4201 Converting lambdas to plain old static function pointers
5f6f3e2 Under GNU/Linux & HURD, add a soname to the liblldb shared library.
640d5b7 fix 'const const' typo introduced in r172647
9547264 Add one more bit of logging for armv7 watchpoint debugging.
07bef69 Adding a custom summary for libc++ std::vector<bool> vector<bool> is specialized and the existing general summary for vectors would lie to the user. Tackling libstdc++ and synthetic children is the following, less critical, part of this task
b1052dc Changing the Python reference document to be more explicit in discouraging usage of lldb.{debugger,...} convenience variables for formatters and other non-interactive Python extensions
8170de6 Removed unused variable.
ec1e823 Remove std::string input arguments and replace with "const char *".
209473a Replacing reference to radar number with svn revision
392bd8d <rdar://problem/13021266>
62dca4b Greg created a new API on SBProcess to get an ID that is guaranteed to be unique even in situations where underlying platforms would actually duplicate or hardcode PIDs
6474274 <rdar://problem/13009943>
ee33e96 SDKROOT should only be unset/cleared for ARM builds. The first fix by Bob Wilson removed it for ARM for both configure and make, but only unset it for desktop configure, not for the make. My next fix unset/cleared it all the time. This fix only unset/clears it for ARM builds.
245dc92 <rdar://problem/13019628>
9a44729 Fix clang builds that were broken due to SDKROOT changes of you have an internal OS build.
7398e43 Fixes to the code I just committed to reflect that we now also have to ignore breakpoints when running the expression to collect isas.
9540568 Modified the Objective-C runtime to fetch Objective-C isas and corresponding names from the underlying process in a manner much quicker than the current approach.
3190331 ClangExpressionVariable previously was not capable of handling multiple clients. However, occasionally an expression must be run in the service of another expression, and in this case two parsers need to access the same list of persistent variables.
eea1f98 <rdar://problem/13011717>
c5c8eec <rdar://problem/13010909>
df7a41d Fix for the separation between -i and -u in expression.
b794020 Separated the "expr --unwind-on-error" behavior into two parts, actual errors (i.e. crashes) which continue to be controlled by the --unwind-on-error flag, and --ignore-breakpoint which separately controls behavior when a called function hits a breakpoint. For breakpoints, we don't unwind, we either stop, or ignore the breakpoint, which makes more sense. Also make both these behaviors globally settable through "settings set". Also handle the case where a breakpoint command calls code that ends up re-hitting the breakpoint. We were recursing and crashing. Now we just stop without calling the second command.
1f1a683 Add a few other missing LOG_ types to set_logging() in RNBRemote.cpp; document some simple bourne shell to re-generate these from the DNBDefs.h header file in case this needs to be done again in the future.
93bb806 Adding a test case for expression parser's support for Unicode strings. This is an expected failure for now
cd8cd61 <rdar://problem/12790664>
2a8a777 Once a function has been JIT-compiled once, don't JIT it again.
3de6986 Fix a logic error in the condition for a warning log message.
9b21d73 Fix cross-compiling problems in build-llvm.pl script. <rdar://problem/12986905>
8ec8d64 Recognize LOG_WATCHPOINTS in the QSetLogging gdb-remote packet.
1b84e1b Add ifdef LLDB_DISABLE_PYTHON around newly added use of AddCXXSummary in FormatManager::LoadSystemFormatters(); that function pulls in code that assumes python; can't be used without the ifdef.
4d258c6 Made crashlog.py handle cases where a parent process's name contains spaces. Thanks to Justin Seyster for the patch.
4ab9278 Removed the hack that uses "frame variable" to evaluate expressions. The expression parser and IR interpreter are now fully capable of evaluating expressions with as much (or better) fidelity.
8ff8128 Don't always strip the first extension from the module basename when looking for python scripts. Now we take a name like "a.b.c" and look for scripts that are "a_b_c.py", "a_b.py" and "a.py" inside the dSYM.
15c1d3d <rdar://problem/12239827>
b698579 <rdar://problem/12239827>
d9735a1 <rdar://problem/12973809>
aad2b0f <rdar://problem/12990038>
bec2ac8 Fix typo in function name and one more whitespace tweak.
a53ac6d Fix whitespace.
7421da6 Modified Value.cpp to share the code that gets the values as bytes (Value::GetValueAsData()) so now Value::ResolveValue() doesn't do its own thing by reading memory directly.
3f4844e Making the Unicode formatters visually nicer by using the same prefix characters as the compiler expects in C++ code Also, marking the Unicode data formatters test cases as dataformatter related for the benefit for the --category flag in dotest.py
06d58b0 <rdar://problem/11383764>
1fc46d2 minor update to status page: C++ exception breakpoints work on linux
f5545f9 <rdar://problem/12725746>
63d67ed <rdar://problem/11146929>
f34feef <rdar://problem/11146929>
0f638a4 Use a more unique end delimiter. In any case, the thread names are hexified when returning to lldb.
5ebdb03 Fixed an issue the "process plugin" proxy object was trying to use the m_exe_ctx when it wasn't ok to do so.
fac004c Added emulation of shifts to the IR interpreter.
11ad623 <rdar://problem/12975489>
3a91e14 <rdar://problem/12028723>
ea0bb4d Expanded the flags that can be set for a command object in lldb_private::CommandObject. This list of available flags are:
12b5aa0 Add a "--reverse" or "-r" option to the "list" with no options command. This will list backwards from the last source point listed. Also fix the setting of the default file & line to the file containing main, when you do a plain "list".
75a4fe6 Updated documentation on the "register_data_addr" key that can be supplied in the "thread" dictionary return value for the python OS plug-ins.
0e3b98e Add an SBProcess API to get the current StopID, either considering or ignoring stops caused by expression evaluation.
ccd5c4e <rdar://problem/12976225>
836064a <rdar://problem/12586010>
ba0bf4e Fixed comment typo.
2976b65 Add test to check the number of threads.
f1fda37 Add initial support to trace spawned threads in a process on Linux.
a3eb5cd Enable ProcessGDBRemote plugin on Linux - Fixes test case TestConnectRemote
1e44fdd Implement -w flag to process launch (allow launching inferior process in different working directory) on Linux/FreeBSD - fixes test case TestProcessLaunch
7342f4b <rdar://problem/12968925>
3a5ac5a Fix TestSendSignals.py on Linux. The wrong stop reason was being set when stopping for a received signal.
2fcbf6e <rdar://problem/12953853>
0d5d570 Make sure that the GenerateFunction call can support arbitrary levels of indentation for user code
efdd469 Re-enabling C++ exception breakpoint testcase (on Linux) - bug fixed in r170241, thanks Andy! - closing related PR 14423
8492942 <rdar://problem/12602653>
c62d140 Mark TestPlatformCommand (test_status) as expected to fail on Linux - due to bugzilla 14806 (platform status command prints more information on Mac OS X than on Linux)
5a39ce3 Simplify build instructions - setting PYTHONPATH is no longer needed to run the lldb CLI on Linux. - added instructions for setting PYTHONPATH correctly for running scripts in the native interpreter
a4b8b86 <rdar://problem/12389806>
21e32a6 Fix lldb -P on Linux - now prints the correct PYTHONPATH - update dotest.py to use lldb -P result correctly - resolves TestPublicAPIHeaders test failure (on Linux)
aec6b32 Generalizing expected stop reason string checking in InferiorCrashing test case.
1e52600 Read bytes from zero-filled sections correctly instead of failing to read.
924910c Handle the case of unordered sequences in a DWARF line table.
6ddebd7 Mark TestExprHelpExamples.py as expected to fail on Linux - requires memory allocation during expression evaluation - opened related bugzilla 14805
1836ade A few small tweaks to the symbolication page.
dedf478 Added a bit more explanation for the python modules that aid with symbolication.
cf6d727 Added a page that describes how to to manual symbolication with LLDB from the command line, from python, and also how to use the build in modules to do symbolication.
19b6467 <rdar://problem/12928282>
aadc7f7 Clang sometimes emits "objc_object*" rather than "id" for id types with protocols on them. We detect this and report "id" instead.
c6fe581 Update to reflect API changes in r171367.
a80c70c Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to reflect the migration in r171366.
1cf173c Remember to tell the target about dyld when we resolve the address for it.
bab2a0c Added support for the modulus operator (%) to the IR interpreter.
aa93c93 Added an SBAPI to get the PythonPath (if the Host knows how to do that). And a -P option to the Driver to print it out. Changed dotest.py to use that to find the PythonPath it should use given the lldb binary it was told to run.
ca8fb17 Made LLDB compile with LLVM top-of-tree again. The results from Clang name lookups changed to be ArrayRefs, so I had to change the way we check for the presence of a result and the way we iterate across results.
64246cd Fixed a bug where we could accept the wrong slice of a fat dSYM in certain cases.
b928eaa Updating TestAbbreviations.py to check for a reduced set of instructions when testing 'dis -f'.
278f16e Adding eStopReasonThreadExiting and fixing the handling of this state on Linux.
c8dc8c4 If we can't find the python function for a given summary, print the name of the function in the warning message.
242b205 Clarify the comments in PlatformDarwin::LocateExecutableScriptingResource a bit.
1e6c71b <rdar://problem/12903081>
76d6485 Setting TestInferiorChanged.py to expectedFailureLinux because of bugzilla 14662.
559bb5c <rdar://problem/12446222>
790c869 Mark register tests as expectedFailureLinux because of bugzilla reports 14600 and 14661.
5ac8e15 Disable confirmation prompt in TestProcessLaunch (to avoid hang on Linux once bug is fixed)
282c22c This patch removes the SymbolFileSymtab support for reporting class types from Objective-C runtime class symbols. Instead, LLDB now queries the Objective-C runtime for class types.
b3ce032 Skip libc++ data formatter tests on Linux because there is no standard location for the makefile to find libc++.
3a4e785 Test suite cleanup for Linux: mark test cases expected to fail due to open bugzillas - bugzillas covered: 14323, 14600, 14541, 14437, 14540, 14541
fe55567 <rdar://problem/11961650>
9d1ac6a http://llvm.org/bugs/show_bug.cgi?id=14629
28d0b69 Don't read the SP when getting argument values from registers in case the SP isn't available. We don't want the availability of SP to limit when we get get arguments from registers.
dd06888 Fix typo in error message (print requested URL instead of command name when plugin missing)
dca8c9f Allow reading registers by thread ID in ProcessMonitor (Linux implementation) - make FreeBSD ProcessMonitor API thread-ready
08d6681 Tweaking a comment in the NSURL formatter for correctness - the code was doing the right thing, but the comment was highly misleading
2b67961 Add a new qProcessInfo packet to debugserver. This can be used by lldb to ask for information about the process debugserver is attached to/launched. Particularly useful on a 64-bit x86 Mac system which can run 32-bit or 64-bit user-land processes.
9c970a3 Adding events when watchpoints are set or changed.
9c556ff Removed a possible use of unchecked NULL from the AST result synthesizer's logging.
1866b87 Mention how to do a (Linux) release build on the build instructions page.
e31e269 <rdar://problem/12890948>
09eb052 Initialize m_done to false in Driver constructor to avoid premature exit bug (spotted on Linux)
72b131f <rdar://problem/12890901>
bb04be1 Remove the “len” defaulted parameter from CommandReturnObject::AppendMessage, AppendWarning and AppendError. Nobody was using them, and it meant if you accidentally used the AppendWarning when you meant AppendWarningWithFormat with an integer in the format string, it would compile and then return your string plus some unknown amount of junk.
bad1c9e <rdar://problem/11990131>
c340ff8 <rdar://problem/12156204>
b1484f7 <rdar://problem/12582041>
878f13c Fixed two conditionals that I accidentally reversed in r170152.
8d646f2 Switch "disassemble" with no arguments or options to disassemble the current frame instead of around the current PC.
4856200 Remove unused variable.
22bf55d Remove references to files that Sean recently removed from the Xcode project.
3299651 Skipping the DeadStripTestCase.test_with_dwarf test on Linux because the Linux ld lacks support for the -dead_strip option.
54cc72c Avoid possible overflow when reading inferior memory (and logging is enabled)
b090668 Enabling ItaniumABILanguageRuntime and SymbolFileDWARFDebugMap plugins on non-Apple platforms.
5fd1177 Fixed a typo.
284e43e Add GCC instructions to build section of website
05a4789 Change crash handling to use eStateStopped rather than eStateCrashed.
1880918 Cleaned up the UUID mismatch just printing itself whenever it wants to by allowing an optional feedback stream to be passed along when getting the symbol vendor.
467be71 <rdar://problem/12878674>
c9e47dd Rmoved the old LLVM disassembler based on libedis.
0cbeb07 Made the struct test case actually use an expression instead of falling through to the "frame variable" code.
23e2b6d Some incorrect debug information caused LLDB to report a structure with an array of size 1 at the end without accounting for that array when reporting the struct's total size to Clang.
c8aa9c9 Trigger the display of error and output in sourced commands from the result object's status instead of the presence of text in the error stream This should be more consistent with the notion of command success/failure and avoids spewing warnings that the user might not care about There will need to be an option to specify the level of verbosity desired (never show anything, only show failures, errors and warning, everything)
43a5fb4 Fix a parser_type to get created with the right AST, and also make variables made from symbols to not be "void * const", but just "void *".
58b03a4 Fixing the -f option so that one specify multiple filters, e.g.
3ce9404 <rdar://problem/11689939>
b6059b2 Fixed a thinko in the handling of the case where more than one thread had stopped with real stop reasons at the same time. Should be that if any of the threads wants to stop, we should stop. The opposite was what was actually happening
40e278c Removed the == and != operators from ArchSpec, since equality can be strict or loose and we want code to explicitly choose one or the other.
1581d7d <rdar://problem/12700464>
aa9b36f <rdar://problem/12831670> For iOS native lldb, don't initialize the ModuleList notifier callback. See the added comment for details on how this is a problem in that environment. We'll need to restructure how the ModuleDidLoad notification is called vrs. when the DynamicLoader pluging has had a chance to set the Sectino load addresses.
e3f0661 Made "target modules add" flush the process to reset stack frames etc.
1d140f0 Marking test_lldb_iter_frame in TestLLDBIterator.py as expectedFailureLinux (due to lack of multi-threaded debugging support).
b76f77e Remove insufficient linkedit address check; the problem is deeper than that and avoiding the crash in this one part of code won't solve anything. I know where the real problem is now.
3f4f8d3 Marking TestPrintStackTraces.py as expectedFailureLinux (due to lack of multi-threaded debugging support).
8e013df Added a warning about using the lldb.target, etc. for anything other than convenience when using the script command.
1998778 <rdar://problem/10898363>
f2ca573 Fixed a few bugs in the "step in" thread plan logic. Added a "step-in-target" flag to "thread step-in" so if you have something like:
24592a3 Minor grammar and style fixes in documentation.
be754e6 Allow LLDB to work with dSYM files that have a DWARF compile unit with nothing else to support clang's new -gline-tables-only mode of compiling.
992d227 Option changes: the option to print the runtime-specific description has been modified in the frame variable, memory read and expression command.
332dc00 Add a LOG_TARGET log to Target::SetDefaultArchitecture to track any architecture setting there.
c92fded <rdar://problem/12780507>
729e99e Adding a validation callback mechanism to OptionValueString (such a feature might theoretically be added to the general OptionValue base class should the need arise) Using this mechanism, making sure that the options to pass a summary string or a named summary to frame variable do not have invalid values
b319118 Fixed the IRInterpreter's handling of "this" and "self" when those pointers are in registers. Previously in this case the IRInterpreter would handle them just as if the user had typed in "$rdi", which isn't safe because $rdi is passed in through the argument struct.
2e28123 Broadcast an event when the selected thread is changed.
4f5b299 <rdar://problem/12639506>
ce56890 Update comments around ABISysV_x86_64::RegisterIsCalleeSaved to make it clear that this is the list of callee-saved registers, add reference to the ABI doc that this comes from.
a4d860f <rdar://problem/12842032>
6fca4f5 Removed debugging code.
e9101f2 <rdar://problem/12709976>
832b5d1 <rdar://problem/12850287>
8e6ee9c <rdar://problem/11844604>
8bc4f6e Enable RTTI for liblldbCore.a when GCC is the compiler - gcc does not like -fno-rtti mixed with dynamic_cast<> (in cxa_demangle.cpp)
f3c1048 <rdar://problem/12848118>
ba687bb <rdar://problem/12827031>
3ca24b4 <rdar://problem/12817233>
33060ad Make sure that the lldb globals: lldb.target lldb.process lldb.thread lldb.frame
1dba077 Even when we aren’t going to init all the lldb.frame, etc, globals, init lldb.debugger, since each script interpreter is tied to just one debugger.
81b8db9 Get LLDB-Info.plist up to date with r169081.
6f3a711 Make sure to check for DW_AT_linkage_name to get the mangled name in the DWARF along with the older DW_AT_MIPS_linkage_name attribute.
18e0830 Added GetCanonicalType() to SBType:
b9db9d5 Fix a few more clang (3.2) warnings on Linux: - remove unused members - add NO_PEDANTIC to selected Makefiles - fix return values (removed NULL as needed) - disable warning about four-char-constants - remove unneeded const from operator*() declaration - add missing lambda function return types - fix printf() with no format string - change sizeof to use a type name instead of variable name - fix Linux ProcessMonitor.cpp to be 32/64 bit friendly - disable warnings emitted by swig-generated C++ code
d35b7b3 More Linux warnings fixes (remove default labels as needed): - as per http://llvm.org/docs/CodingStandards.html#don-t-use-default-labels-in-fully-covered-switches-over-enumerations
6798bd4 Now that we set ThreadPlanCallFunction to private in the constructor, it is confusing that we set it again in client code after creating the plans. So remove those unnecessary calls.
f61e16b <rdar://problem/10903854>
ae0f59c Set ThreadPlanCallFunction to private in ConstructorSetup. This fixes a problem on Linux where 'continue' was misfiring after an expression evaluation when stopped at a breakpoint. The problem was that InferiorCallMmap was not setting its ThreadPlanCallFunction to private and so the completion of that thread plan appeared to be the stop reason and therefore the 'continue' operation failed to step over the breakpoint. The SetPrivate call is being put in ThreadPlanCallFunction rather than InferiorCallMmap to make the solution more general.
691e74c Fix Test11588.py on Linux. The test was failing because the synthetic type fields were resolving to int instead of long. A similar change was made in r155144 to eliminate the type specification for an earlier check in this test, so it seemed appropriate here too.
14e71ec Separate initing the stdout/stderr for running the Python Script interpreter from initing the lldb.target/frame/etc globals, and only do the latter when it makes sense to.
4a96ab8 Take the Target API lock before letting the Python code start to work constructing threads, otherwise we will risk a lock-inversion deadlock between the thread list and the API mutex.
e8a321d <rdar://problem/12831670> When using the same-device optimization for shared cache libraries, if we have an invalid load address for __LINKEDIT, don't try to read anything out of lldb's own address space. Reading it out of the remote address space will fail gracefully if we have bad addresses but reading it out of lldb's own address space will result in a crash.
7812411 <rdar://problem/8908550>
f7a24e5 <rdar://problem/12827789>
49d888d <rdar://problem/12820334>
19113d6 Add examples of how to set env vars for the inferior process from lldb.
eddc95d Mark the "dwarf" version of the test expected fail as well as the dsym version.
81b78ca Merge rename fix from libcxxabi (r169402: rename class with name that clashes with GCC 4.6/4.7)
70a8945 Fix ABIMacOSX_i386::RegisterIsVolatile to return the negated value of RegisterIsCalleeSaved. Add ebp back to the list of registers that are callee saved. <rdar://problem/12817918>
b912457 <rdar://problem/12560257>
77dd4a4 The expression parser will now check the validity of the "self"/"this" pointer for the current stack frame before wrapping expressions in C++ or Objective-C methods. This works around bad debug info where the compiler emits a "this" or "self" but doesn't give any way to find its location.
8f00907 Move isprint8() into lldb_private as per post-commit review from Stefanus
48f833c Rewrote the bitfield logic. Major changes include:
c4d49fd Adding missing log->Printf instead of printf in Target::SetArchitecture for target logging.
a7eb248 <rdar://problem/12560257>
0b93a75 <rdar://problem/12749733>
2eafcaa Define isprint8() wrapper around isprint() in order to avoid crashes on Linux
dd06f93 Backed out part of the ABI changes that were checked in because it breaks the i386 test suite as it makes backtraces for the first instruction of a function fail. Stepping relies on backtraces being correct, so I am reverting what is causing the breakage.
48eca2f Crash every time with new target logging is now fixed.
8c6cf43 Add an LLDB_LOG_TARGET logging channel (log eanble lldb target).
d891f9b Fix Linux build warnings due to redefinition of macros: - add new header lldb-python.h to be included before other system headers - short term fix (eventually python dependencies must be cleaned up)
0bce9a2 <rdar://problem/12649160>
bdf98ef Fix comment in ABIMacOSX_i386::RegisterIsCalleeSaved to say that these are the *non-volatile* registers on Darwin/i386, not the volatile registers. Recognize the sp, pc, fp generic reg names as well.
99611fe In the data formatters, if we know the result type of an Objective-C selector, don't bother making the expression parser resolve it all over again. Just send the message straight to the object pointer as if it were an id, and cast the result.
c07d199 Cache the names for Objective-C classes if we know them while making our initial run through the Objective-C runtime's class tables.
1a18ded Mark TestConnectRemote.py as expected to fail on Linux due to bugzilla #14427
b3dafc6 <rdar://problem/12750060>
6701ba3 Missing #include to pick up def'n of TerminalState.h.
965b404 Get rid of a warning where functions in DNB.h were extern "C" when they don't need to be anymore.
6475c42 <rdar://problem/12798131>
25b2109 A few more build fixes for gcc 4.6: - use const char* instead of char* as needed in ObjC language runtime plugin - use int to iterate through enum (operator++ on enum not defined) - use initializer list instead of inline initialization of const field
3e1d95d Fixed a crash in which we examined the extension of a file name, whether the file name had an extension or not.
803c3b0 Fix clang build issues.
5292b44 <rdar://problem/12742973>
5fdfc6d Don't re-add kexts and the kernel each time we get a notification that kexts were newly added.
253a86b Bump lldb version num to lldb-178, debugserver version to debugserver-198.
c557e7d Read full 64 bits of kernel address when locating a 64-bit kernel in ProcessGDBRemote. <rdar://problem/12657369>
6b21a9b Added support for PtrToInt to the IR interpreter.
5474125 Added logging to the code that determines whether the current frame is in a C++/Objective-C class or instance method.
b1087a2 Save and restore terminal state when lldb is suspended with SIGTSTP and resumed with SIGCONT. Readline & gdb have a bunch of code to handle older UNIX'es with other job control mechanisms. I didn't try to replicate that.
9ac7ce3 <rdar://problem/12676084> Dump the traceback when a Python error occurs in "command script import" and the exception is not an ImportError
ec9c2d2 Added new options to "target create" and "target modules add".
1649a72 <rdar://problem/12687087>
f14269a <rdar://problem/12780259>
5f35a4b Resolve printf formatting warnings on Linux: - use macros from inttypes.h for format strings instead of OS-specific types
507a638 <rdar://problem/12655594>
2c7e854 <rdar://problem/12635804>
37459fc Match extern "C" in declaration and definition (swig template) - Fix for building with gcc 4.6
214d2a3 <rdar://problem/12445557>
6ecafc7 Don't return decorated (i.e., const or pointer) versions of UnknownAnyTy for ObjectiveC value types. <unknown type>* makes no sense and can cause the parser to behave very oddly.
dacdc01 Add an example of using the target.process.extra-startup-command to turn on debugserver logging since we always forget how to do this...
15fd97d Tighten up how we acquire the underlying frame in the SBFrame methods. We were getting the frame and then getting the run lock. Which means that our frame could have gotten invalidated by stopping between the time we got the frame and assured the the target was stopped. Now we get the run lock first, and THEN resolve the underlying frame object.
db23fc2 Rename __lambda to __lambda_node (apply r164404 from libcxxabi) - fixes gcc 4.6 build problems - resolves open bugzilla http://llvm.org/bugs/show_bug.cgi?id=13889
53a1c26 Correct the label for the com.apple.debugserver.posix plist. <rdar://problem/12769073>
0194553 Linux buildbot fix: detect swig tool from PATH in shell script (before searching hardcoded directories)
2d05dc6 Add 'class' keyword to friend definition (to fix gcc 4.6 build)
c4a8ba7 Cleanup - remove declarations of unimplemented functions.
14571fc If Clang is looking for an Objective-C method on a type, and we find it in the origin for that type, don't look anywhere else; just report it.
c9b798c <rdar://problem/12639603>
c62ef46 Fixing a silly typo in the previous patch
8127561 Fixed the debugserver Xcode project to allow DebugClang builds of LLDB to build a properly codesigned debugserver. I did this by adding a DebugClang configuration to debugserver that's just a clone of the Debug configuration.
341c311 <rdar://problem/12754509> Make sure that ValueObjectDynamicValue clears itself when no dynamic type information can be found This behavior was supposed to be already happening (as per the comment lines)
2c825fb <rdar://problem/12636970>
f5150e8 Mark expected failures on Linux (due to bugzilla #14437)
e45c499 <rdar://problem/12759744> Provide physical memory distribution as part of profile data
01e6a58 <rdar://problem/12106825>
7bf78a0 The skipOnLinux decorator wasn't calling the test method correctly (no need to pass in the "self") resulting in errors on MacOS X for the tests so decorated.
14fe7f1 <rdar://problem/12636970>
76b258d The Function calling thread plan was replacing the stored stop info too soon, causing recursive entry into the breakpoint StopInfo's PerformAction, which is bad. Reworked this so that it is now correct.
99e8729 Improvement to TestGlobalVariables fix - use lldb settings command instead of os.environ - use dyldPath fixture variable instead of hardcoding LD_LIBRARY_PATH - add tear-down hook to restore environment after testcase is run
e5aa0d4 Fix for TestSharedLib.py (on Linux) - use lldb 'settings' command to help testcase find shared library - pull up dyldPath variable from TestLoadUnload.py to fixture base class (applicable in multiple cases)
ae9cc55 <rdar://problem/12723044> For 'process plugin packet send…', we just send it async by default
0052123 Missing “if (log)” on a log printf.
1565469 Fix TestGlobalVariables.py (on Linux) - setting LD_LIBRARY_PATH required for the test program to run correctly
46a645f Skip objC test on non-darwin platforms
1ff1f2e Remove decorator to skip event tests - hang resolved in r168503
40c9d75 Update test status on Linux - add decorators @expectedFailLinux and @skipOnLinux - skip/mark xfail cases due to open bugzillas # 14323, 14416, 14423, 14424, 14425, 14426
c001040 Fix Linux bug that leaves lldb in invalid state after expression evaluation times out. - Handle EINVAL return code from ptrace(GETSIGINFO, ...): not an error, but 'group-stop' state on Linux - propagate SIGSTOP to inferior in above case - this commit resolves the failure in expression_command/timeout testcase
f7f5804 Remove call to StopMonitor() from ProcessMonitor::Detach() - StopMonitor() is called anyways from ProcessMonitor destructor later - resolves hang in TestEvents.py
bd31619 Disable darwin-specific test on non-darwin platforms
169cd51 Linux test case fixes - missing includes in cpp test programs - mismatched dwarf/dsym test cases - make "com.apple.main-thread" expected string conditional on darwin platform
c676e35 Clear auto-confirm setting on teardown for tests that use it
c09b5c1 Use auto-confirm setting to avoid prompts causing some tests to appear to hang - this commit addresses bugzilla #14385
eec1981 Fix incorrect usage of buildDsym() in dwarf test
b810628 Skip dsym tests on Linux
b2921e2 Rest of the fix for Thread
1a00ab3 Remove unneeded const qualifier
2827e26 Remove unused member variable.
7d5e406 Temporarily skip tests known to hang on Linux - opened bugzilla defects #14384 and #14385
1245221 Linux fix: remove reference to cellspu (backend removed in llvm r167984)
4976e0e Added malloc introspection commands for Mac OS X for both GDB and LLDB.
5ee8d64 Add more info for shell commands being used by DebugSymbols.framework.
559cf6e Han Ming's commit in r168228 had a bunch of 4-space tabs in the source files. Expand to spaces. No content changes, just whitespace.
2529aa3 Follow up on <rdar://12720514>. Removed commented out code.
fb9cee6 <rdar://problem/12720514> Sub-TLF: Provide service to profile the inferior
e8ec5ac Added symbols page for Mac OS X that explains how DebugSymbols.framework can be customized.
3a11712 Fix expected error message in test.
21a2543 <rdar://problem/12238339>
b4fadde Fix lldb to compile with top of tree LLVM/clang.
9210fdd <rdar://problem/12712928>
4e08e0d Update RecordingMemoryManager as per change to RuntimeDyld base class made in upstream llvm (r168114)
8a318f2 Change RegisterContextLLDB's unwind logging to report which stack frame finally was able to restore a register, instead of just reporting the frames that couldn't supply the reg.
f26aaea A change in how we search for saved register values unintentionally allowed volatile registers to be returned up the stack. That leads to unexpected/incorrect values provided to the user and we need to avoid that. <rdar://problem/12714247>
f318616 Don't lock the thread list during ThreadList::ShouldStop. That does too much work for this to make sense. Just copy the current thread list and operate on that. Prevents some deadlocks.
439d6b6 <rdar://problem/12125010>
9a579ee Explain how to use "expr -u" as the lldb equivalent of "set unwind-on-signal 0; print".
b5bdf6a <rdar://problem/11782181>
d27e543 In cases where the Objective-C ivar symbols are stripped out, expressions that refer to ivars will not work because Clang emits IR that refers to them to get the ivar offsets. However, it is possible to search the runtime for these values.
2dd6d1c <rdar://problem/12408181> Test case to make sure this area of ObjC support does not regress in the future
9c5d3af Patch from Andrew Kaylor andrew.kaylor@intel.com to have Thread::ResetFrameZeroRegisters() clear the UnwindLLDB object when resetting the thread's register state.
ca8b743 <rdar://problem/12695557>
9e3193a Revision of the patch from Andrew Kaylor <andrew.kaylor@intel.com> to prevent missing an event added in WaitForEventsInternal, narrowing the time in which we are not accepting new events. Also, made everything that was protected private, since there really isn't any good reason why subclasses would have to muck with the listener internals.
6cc99d2 Giving at least some error information when a Python exception happens during command script import
45454a3 <rdar://problem/11814875>
15b3c94 Patch from Andrew Kaylor that fixes a race condition in the Listener.cpp.
1b888f8 New compiler warnings caught issues with the m_encoding_uid field that should have been a lldb::user_id_t type, but was a uint32_t a long time ago and never got updated.
f96e949 Fixed an error in the ELF parser that was comparing a bool to 4 causing 32 bit ELF relocations to get parsed incorrectly.
0a8d4bc Fix typo (dwarf/dsym mismatch) in testcase causing early failure on Linux
27f79f3 Fix minor typo on build page.
31f7c43 Update platform section to mention Linux/FreeBSD local debugging support, and also mention that LLDB builds on Linux with clang and libstdc++/libc++.
1722950 Replace const_iterator with iterator to build against libstdc++ - libstdc++ defines vector::erase(iterator) but not vector::erase(const_iterator)
e727b87 <rdar://problem/12153915>
9bb15b6 s/BCPLComment/LineComment/ (llvm r167690)
d94bf68 Fix libstdc++ build - Add missing operator= definition for DelayedAddObjCClassProperty - needed to be compatible with libstdc++ vector implementation
c137da8 Fixed a potential crash in the Darwin platform.
a56f7f0 Test commit: clean up C++11 options in lldb (on Linux) build page
9704ca2 Add support for libdispatch version 4 structure layout for finding GCD queue names of threads to ProcessGDBRemote::GetDispatchQueueNameForThread() May need tweaking once this version is rolled out but visual inspection looks fine. <rdar://problem/12333100>
72472b6 Don't assume that Modules have directories. They may be in-memory-only things like our favorite "cl_kernels" and so module_directory here can be NULL.
79f7143 how to do it correctly.
80ce49c Remove a debugging printf that was left in the code.
892757a Removed use of non-standard escape character '\%'
bf692ae Mark Objective-C 2.0 status as "Not applicable" on Linux. The objc 2 runtime doesn't run on Linux.
a10929d Update the status page to include Linux status information, patch from Dan Malea, daniel.malea@intel.com.
9fcf9e1 Fix typeo in example help text for type filter add. <rdar://problem/12090979>
0dd2fc7 Patch from Dan Malea daniel.malea@gmail.com to add some required flags to the Linux makefiles to get the tests to run.
0b2f5cc Minor cleanups to the new ModuleList notification APIs: passing in the ModuleList as part of the callbacks, and not copying the notifier as part of copy constructing and assigning
6f58bbd Adding support for loading the scripting resource as part of a framework, lacking the dSYM bundle, or if the bundle has no Pythonic resources whatsoever Solving an issue where "command script import" would fail to pick the file indicated by the user as a result of something with the same name being in an earlier position in sys.path
146d952 <rdar://problem/12586350>
b6ea174 Fix a crasher in DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule where it assumed that a kernel had been found in memory, when that may not be the case when we're attaching to a device early in the boot process. <rdar://problem/12638140>
4d43ac7 Added a posix_spawn based launchd plist for always using posix_spawn to launch programs.
b3ac5bf <rdar://problem/12645617> <rdar://problem/12153915> (partial fix)
ab88583 When we were calculating the max byte size of ONE instruction to handle something like
499222a Logging improvements for the Objective-C runtime. Also fixed a bug where the Objective-C runtime would not properly report that it found a class if (a) it had to build the ObjCInterfaceDecl for the class and (b) logging was enabled.
d77371f <rdar://problem/12647273>
c2ed5cc Added unnamed bitfields to our bitfield test.
7ce162b Make sure to check the module is valid after trying to find a shared module.
c2a2e13 Add a workaround to problems with the clang debug info for inlined subroutine ranges.
f270fa9 <rdar://problem/12582031>
2c5ccde Avoid potentially disastrous mistakes when removing a file.
ba9d60d Cleaned up the code signing instructions: - make sure to delet the .cer file on the desktop - added section that describes what to do when you re-install a new OS where you still have an old code signing certificate around.
6e3f97b Add new ArchSpec methods, IsCompatibleMatch() and IsExactMatch(). The operator== method is a synonym for IsExactMatch().
9b8550e Fix a little think-o. In FileSpec::operator== we were trying to figure out whether the rhs file was resolved or not by comparing the resolved version of the rhs FileSpec's directory name with the lhs FileSpec's directory name. We really meant to compare it with the rhs FileSpec's directory name...
f72bd8b Make sure users know that "target variable" can read variables while running a process by changing the documentation string.
fb2d05b Caught two cases where we were passing a Stream* without checking for NULL
880b2ca Fixed a problem where we mistook normal result variables for guard variables because the current class or method named contained the letters "GV".
827baf6 Fixed the "--force" option for memory read.
44b879f Switched debugserver to use C++11/libc++.
4cbeeff Extra safeguards to ensure that we never query the runtime if we have complete debug information for a class.
cbd3905 Set the MACOSX_DEPLOYMENT_TARGET in a few more places.
e4c18b8 Set the MACOSX_DEPLOYMENT_TARGET for Debug/Release builds (but not BuildAndIntegration builds).
da53089 Change DataExtractor::Dump() to use a series of if..else if statements instead of a switch for the size of the floating point types; some architectures sizeof double and sizeof long double are the same and that's invalid in a switch.
88db459 <rdar://problem/12585314>
eeabe81 Get rid of hack by making the actual call public. This was causing the lldb-platform to not be able to link.
502000d Fixes to make the test suite work better when explicitly pointed at an LLDB framework and executable.
f2b0fef Makefile patches from Charles Davis and Daniel Malea (+ one or two tweaks).
8d6d0f2 Avoid a crash when trying to parse a line table in the DWARF parser.
3646e68 Fix an error message in debugserver so it doesn't print "Unable to launch process (null)" because we changed argv while doing argument parsing.
a948830 There seems to be some odd corner case where we shut down the ProcessGDBRemote, but we haven't managed to shut down the async thread. That causes the ProcessGDBRemote::AsyncThread to crash when it wakes up. So I changed StartAsyncThread and StopAsyncThread to be callable multiple times (only the first one does anything) so that we can just shut it down unequivocally in the ProcessGDBRemote destructor.
c7d505b Switch from using KERN_PROCARGS2 to get the path to the executed process to proc_pidpath. The former was flakey, and the whole point of libproc is to protect us from potential flakiness at that level...
085c78b Added the plists to the debugserver project and fixed the labels for the new plists.
bfeaf57 More launchd style plists.
b9f6fd8 Use libxml2 on Mac OS X.
a5c92b6 Resolve any bundle paths we are given when the specified executable is a bundle.
36d507f More fixes from MSVC warnings found by Carlo Kok.
e1f745a Carlo Kok was compiling with MSVC, caught some more issues.
34507e4 Carlo Kok found an issue where default parameters were causing the wrong argument to be passed. I got rid of the default args so we don't run into this.
93e2693 Patch for issue found by Carlo Kok. Fixed a type issue where an ';' was incorrectly following an if statement. There actually isn't a need for the if statement, so it was removed.
1e4d8f0 Rmoved a duplicate version of SetSelectedThreadByID that confused external clients.
50ba5ad Removed some spurious files from our Copy Headers build phase.
c71397b Fixed a crash when we couldn't create a CXXMethodDecl but tried to manipulate it anyway.
0a68226 Fix the bit pattern for vst1 in EmulateInstructionARM::GetThumbOpcodeForInstruction so it is recognized correctly. The second patch needed for <rdar://problem/10652166>.
fd670c2 <rdar://problem/12586188> Make ImportError a special case for "command script import", such that the error message for the exception becomes the error for the entire import operation and silence the backtrace printout
b5431d0 <rdar://problem/12602978>
f0fab4f Fixed build warnings.
c7f17c0 Make blocks that capture their containing method's object pointer look like methods of the containing class so that direct ivar access will work in the expression parser.
8fda922 Change a couple of raw printf's to expression log output.
f256975 Change the MacOSX Symbols::DownloadObjectAndSymbolFile to look up "~rc" via getpwnam() instead of doing tilde expansion and doing soft-link dereferencing via realpath() - if we're pointing to a softlink, leave it as-is. <rdar://problem/12597698>
7c5e22f Path from Ashok Thirumurthi:
08f7fff Replace printf with result.Printf, so that the plugin shows its output with any configuration of the LLDB I/O streams (esp. useful in graphic environments such as Xcode)
a3da572 Patch from Matt Kopec <matt.kopec@intel.com> to handle stepping into multiply-nested inlined code.
4af3835 Patch from Matt Kopec:
42dc5a5 Fixed File::SeekFromEnd() to use SEEK_END insted of SEEK_CUR.
4756b67 Use the "data()" accessor on the std::vector<clang_type_t> in case it is empty.
9927057 Added the ability to get function return and argument types to SBType():
aaf0088 Add missing return to SBAddress::GetOffset(). This was caught by Carlo Kok.
82913de Ensuring that the swig typemaps for SBData set the size to 0 along with the pointer to NULL There should be no functional changes as SBData creation functions already checked for NULL regardless of size - but it ensures consistency
db05491 <rdar://problem/11449953> Change Debugger::SetOutputFileHandle() so that it does not automatically initialize the script interpreter in order to transfer its output file handle to it This should delay initialization of Python until strictly necessary and speed-up debugger startup Also, convert formatters for SEL and BOOL ObjC data-types from Python to C++, in order to reap more performance benefits from the above changes
8433278 <rdar://problem/12500785>
ca57bc5 Fix an incorrect comment...
a955275 Improve the broadcast event dumping.
a32c5a5 This is the first phase of supporting the DW_AT_object_pointer tag. I expanded the decl metadata so it could hold this information, and then used it to look up unfound names in the object pointer if it exists. This gets "frame var" to work for unqualified references to ivars captured in blocks. But the expression parser is ignoring this information still.
4fa015b If we got what looks like a single step exception but we weren't single stepping then just report the raw exception.
89fda00 Moving ValueObjectCast over to its own .h/.cpp files instead of sharing ValueObjectDynamic.h/.cpp Removing the IsDynamic() and GetStaticValue() calls, so that they will default to the base class behavior: - non-dynamic - itself as the static value This is in contrast with the previous behavior which could be confusing and could potentially cause issues when using those objects
c62f5ab Fixes to the Objective-C V2 runtime:
b856a45 Show both lldb-168 and earlier "bt -c 5" as well as lldb-169 and later "bt 5" usage.
6021b24 Document "bt <n>" for "thread backtrace -c <n>", note that it is available in lldb-169 and later.
51d7a39 This patch updates comments in the Predicate class to describe a subtle behavior that callers may need to be aware. It also adds documentation for one function which didn’t have any.
fee26ee Add API to get the process plugin name & short name.
b34ca85 Updated the "breakpoint command add" documentation and fixed the web site docs for the signature of the python breakpoint callback functions.
37816a3 Add a new capability to RegisterContextLLDB: To recognize when the Full UnwindPlan is trying to do an impossible unwind; in that case invalidate the Full UnwindPlan and replace it with the architecture default unwind plan.
0a07c0e Document target.source-map as the replacement for gdb's directory command.
9d9b063 Add a teardown function to TestAbbreviations so it doesn't error out when running for two archs.
fb46772 <rdar://problem/12570550>
23f2194 Found a couple more places where we need to run all threads when stepping.
02ed285 Add text to the help to explain how to set user defined variables.
91a9f21 Allow operating system plug-ins to specify the address for registers so we don't have to create data up front.
d21d8aa Add section on creating convenience variables.
90c6cd5 Changed the V1 and V2 runtimes to be able to detect when the ISA hash table has changed, and auto update as needed.
cbe707c Updated LLDB's use of the DiagnosticsEngine to reflect a change to the initializer.
d06bb50 Identify a kdp session that is connecting to an EFI monitor, use a DynamicLoaderStatic dynamic loader for the session instead of a kernel or user dynamic loader.
0acf4c6 Added --framework and --executable arguments to dotest.py so that the testsuite can run against any LLDB.
6319042 Fixing the test case for rdar://12481949 to do the right thing with our new rules for sign-extension in GetValueAsUnsigned()
fb6a8bb And one more logging message goes away
03bc3fd Reverting unwanted changes to the test suite
671dd55 Reverting the changes to Scalar since this class needs to follow C rules for type promotion
4a0a125 Reimplementing SBValue/ValueObject.GetValueAsUnsigned() in terms of appropriate calls in Scalar - Making sure Scalar does the right thing when casting signed values to unsigned ones.
82ad7ca Changing the NSDate data formatter to use GetData().uint64[] instead of relying on SBValue.GetValueAsUnsigned() to reinterpret a double as a uint64_t
467e1ea Added process and thread logging the python OperatingSystem plug-in.
b2c1a41 Patch from Ashok Thirumurthi that enabled FPU registers for POSIX x86_64.
0fd6c8d <rdar://problem/12481949> Fixing SBValue.GetValueAsSigned() to do the right thing when dealing with a 32-bit negative value
c5fbd9a Cleanup some variable names to indicate auto pointers and also manager the llvm::Module memory more correctly.
7b771d2 eArgTypePath was removed in r166533; change -c to expect eArgTypeFilename.
251729e <rdar://problem/12523238> Commit 3 of 3
9a91ef6 This is a fix for the command option parser.
2d32924 Better error message for invalid argument to --category - silenced the printout of the raw args when not in verbose mode
ef22b90 Objective C cleanup. Removed an cache that was no longer needed and changes the code that gets the dynamic type and class name to use our new Objective C cache.
2bc5737 Added a testcase for runtime types in Objective-C.
c01344c <rdar://problem/12523238> Commit 2 of 3
ed2b62a Turns out there are 8 bits in a byte.
800332c <rdar://problem/12523238> Commit 1 of 3 This commit enables the new HasChildren() feature for synthetic children providers Namely, it hooks up the required bits and pieces so that individual synthetic children providers can implement a new (optional) has_children call Default implementations have been provided where necessary so that any existing providers continue to work and behave correctly
9e37662 Watchpoints remember the type of the expression or variable they were set with, and use it to print the old and new values. Temporarily disable the "out of scope" checking since it didn't work correctly, and was not what people generally expected watchpoints to be doing.
d43f40d Change how the UnwindAssemblyInstEmulation class tracks the setup of the function's prologue instructions so we can re-instate that prologue if we hit an early return mid-function. Add some additional heuristics to differentiate between prologue and epilogue instruction sequences.
de1edce Clean up help/usage messages for kdp-remote / gdb-remote a little bit.
b8080cb Fixing a compiler warning about has_children being used before being initialized
54037b1 <rdar://problem/12493007>
61ff3a3 Improved support for language types as command options:
01458ca <rdar://problem/12500212> Test case for the new plugin feature
b8183d4 Added support for zero-length arrays at the end of structures, and added a testcase.
ad76439 Proper copyright notice
6837dfd <rdar://problem/12524810>
14cf90e <rdar://problem/12479701> Use the plain pydoc pager to work around Python help() pagination conflicts with our I/O management
3d656c7 <rdar://problem/12437442> Given our implementation of ValueObjects we could have a scenario where a ValueObject has a dynamic type of Foo* at one point, and then its dynamic type changes to Bar* If Bar* has synthetic children enabled, by the time we figure that out, our public API is already vending SBValues wrapping a DynamicVO, instead of a SyntheticVO and there was no trivial way for us to change the SP inside an SBValue on the fly This checkin reimplements SBValue in terms of a wrapper, ValueImpl, that allows this substitutions on-the-fly by overriding GetSP() to do The Right Thing (TM) As an additional bonus, GetNonSyntheticValue() now works, and we can get rid of the ForceDisableSyntheticChildren idiom in ScriptInterpreterPython Lastly, this checkin makes sure the synthetic VOs get the correct m_value and m_data from their parents (prevented summaries from working in some cases)
b9bd4ee <rdar://problem/12473003>
25a66bc Reorder the sections of "USE AND EXTENSIONS" so the most useful to users new to lldb are at the top.
33f7dd57 Rename the lldb/gdb command page. Remove 'Customization', 'Documentation', and 'FAQ' pages from the sidebar's "USE AND EXTENSION" section. These pages have no content. If someone ever wants to add content to them, we can re-add them to the sidebar.
509c728 Fixed a bug that caused floating-point values to be printed truncated.
0f32a66 Also remove PlatformiOSSimulator::GetProcessInfo decl from the header file. (followup patch to Sean's commit of r166355 earlier today.)
4e84674 Improved logging for the SBTarget's launching and attaching APIs.
88d3971 Fixed the iOS simulator platform:
307c7fd <rdar://problem/12491387>
2f27af8 Change the name of the variable used to detect if we are loading kexts to "load-kexts" instead of "disable-kext-loading" since the value is a boolean. This was requested by the person who requested the feature. It now defaults to true:
ee7a663 Remove -w write flag to watch set var from tutorial.html.
2acbc2a Rename "macosx-kernel" to "darwin-kernel" to match the filenames before anyone starts using the settings for this plug-in.
87e9d32 Added the infrastructure necessary for plug-ins to be able to add their own settings instead of having settings added to existing ones. In particular "target.disable-kext-loading" was added to "target" where it should actually be specific to the the dynamic loader plugin. Now the plug-in manager has the ability to create settings at the root level starting with "plugin". Each plug-in type can add new sub dictionaries, and then each plug-in can register a setting dictionary under its own short name. For example the DynamicLoaderDarwinKernel plug-in now registers a setting dictionary at:
127291c Add a new target setting to disable automatic loading of kext images in a kernel debug session:
3b92456 typeo fix in comment
6237746 Change CommunicationKDP::SendRequestWriteMemory to append data as binary instead of asciified bytes. <rdar://problem/12522978>
c7e5708 Fixed a bug where empty C structs were given size 1 by the expression parser. We now correctly report that they are of size 0. (C++ structs are mandated to have nonzero size, and Clang marks them as being 1 byte in size.)
2657b6b Change the "rb" alias to "rbreak" since some people are used to typing more than "rb" and so weren't finding the alias.
2e7f313 <rdar://problem/12491420>
e128068 Mention "break set -r" and "break set -p".
ed0a0fb <rdar://problem/12462048> <rdar://problem/12068650>
0c8446c <rdar://problem/12462048>
7b69503 Improvements to the data formatters logging - plus, new log messages when our dynamic type changes
6a97d42 Fixed ClangASTContext to own its TargetOptions using a reference-counted pointer. This avoids memory-management problems when the TargetOptions are deleted.
683a97c Added support for "bool", "true", and "false" to the expression parser (also wchar_t) and added a test case.
3499e18 Added register write examples and also how to modify the pc. For this we show and example of GDB using the "jump" command, and LLDB using "register write" with an expression.
0b2be9d <rdar://problem/12503640> Fixing an issue where the dynamic type of an Objective-C pointer changed but we still reported the one-true-definition for the previous type. This was causing issues where a variable could be reported as being of an entirely different type after an assignment
6ca5be3 Add code to UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly to handle an addition class of early-return instructions we find in arm code: tail-call optimziation returns where we restore the register state from the function entry and jump directly (not branch & link) to another function -- when that other function returns, it will return to our caller.
75a443b API cleanup.
47beabb Add the ability to set timeout & "run all threads" options both from the "expr" command and from the SB API's that evaluate expressions.
b8fda50 Removing the two extra GetXSize(bool) calls since we do not desire to support them long-term
c2bc794 <rdar://problem/12446320> Fixing an issue with our Driver where setting an immediate output would not cause suppression of the final printout. This allows effective output redirection for Python commands
1b97a65 llvm needs the OS to be set to either iOS or Mac OS X to work properly; when doing bare-boards rom debugging force the OS to be one of those when initializing llvm. <rdar://problem/12504138>
db178a1 Patch from Matt Kopec:
783ac95 If a full path to a compiler is provided on the command line to dotest.py, replace / with _ in the logfile names that mention that compiler so that we don't try to put log files in weird places.
5d30ea7 Add a new ABI plugin method which specifies whether the architecture must push something on the stack for a function call or not. In x86, the stack pointer is decremented when the caller's pc is saved on the stack. In arm, the stack pointer and frame pointer don't necessarily have to change for a function call, although most functions need to use some stack space during their execution.
6bc24c1 Patch from Matt Kopec <matt.kopec@intel.com> to fix the problem that if two breakpoints were set on consecutive addresses, the continue from the first breakpoint would skip the second.
b859639 Added "process plugin packet send" and "process plugin packet history" for GDB remote. "process plugin packet send" will send a packet and receive a response. "process plugin packet history" will dump the packet history buffer.
1ba663a Build with SDKROOT = macosx for "Debug" "DebugClang" and "Release" builds when building with Xcode.
12f1d1e Fixed a logic error that showed up when compiling with a newer version of clang where:
f19e199 Patch from Daniel Malea -- Updated build instructions for Linux.
45edd01 Mention that the code signing process also applies to Mountain Lion
37d3fce Make sure we always use lldb::tid_t for thread IDs so we don't truncate a 64 bit thread ID.
13193d5 <rdar://problem/12491387>
949b717 <rdar://problem/12490588>
44aa393 Provide an SSL context ref in case SLL is needed for communication.
82560f2 <rdar://problem/12490558>
fe3150f <rdar://problem/12489931>
0bbb5b8 Fixed build problems with LLDB on Mac OS X, specifically related to the deployment settings. Also some minor alphabetization.
135c4eb Make SBDeclaration.h a public header in the LLDB.framework.
6f01c93 Bunch of cleanups for warnings found by the llvm static analyzer.
5e91e37 Patch from Daniel Malea that cleans up the process parameters for Process/Thread classes for POSIX and Linux.
d1f0376 Patch from Andrew Kaylor that centralized where the info for:
d34a3b2 Modified patch from Matt Kopec that makes sure the run lock is acquired when attaching and makes sure the pid is being set on linux in the process info.
d9899e0 <rdar://problem/12042500>
0bfb4b3 Fix build warnings.
4fbe61b Fixed the IR interaction layer to deal with a change in the LLDB target data API.
3a98c89 Fixed an indentation issue that only shows up when dumping .o files that use linked addresses (DWARF in .o files with debug map).
a510437 <rdar://problem/12331741>
7971a03 Patch from Andrew Kaylor that fixes Linux default host triple values.
ce63358 Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly.
fb332f9 When OptionValueFileSpec is given a filename starting with ~, we need to realpath it. Fixes the case where
e33ebf0 Change the scratch buffer for x86 assembly instructions in AssemblyParse_x86 from malloc'ed heap to an llvm SmallVector.
4930614 <rdar://problem/12462744> Implement a new SBDeclaration class to wrap an lldb_private::Declaration - make a GetDeclaration() API on SBValue to return a declaration. This will only work for vroot variables as they are they only objects for which we currently provide a valid Declaration
ef01f57 Move the scratch buffer allocation for x86 instructions from being allocated each instruction, to once in the AssemblyParse_x86 ctor. an instruction
94a5d0d Change the Thread constructor over to take a Process& rather than a ProcessSP. We can't create Threads with a NULL ProcessSP, so it makes no sense to use the SP. Then make the Thread a Broadcaster, and get it to broadcast when the selected frame is changed (but only from the Command Line) and when Thread::ReturnFromFrame changes the stack. Made the Driver use this notification to print the new thread status rather than doing it in the command. Fixed a few places where people were setting their broadcaster class by hand rather than using the static broadcaster class call.
f190a41 Don't make regexp commands as regular commands - they are "short cuts" and users should be able to override them with "unalias" but you can't unalias normal commands.
38afc2e Free the opcode_data malloc'ed memory instead of leaking it - thanks for catching that, Chris.
dac50c2 Change the x86 unwinder from using edis as its disassembler API (to get the length of x86 instructions) to using the LLVM-MC disassembler. <rdar://problem/12411000>
edb0d27 Someone was using vi and left a little something in the code.
bc92c01 Switched AppleObjCRuntimeV2::CreateClassDescriptor over to simply update its cache and then look up the descriptor in the cache. This is fine because the cache now builds much faster (since descriptors are minimal).
65529e3 Thinned the AppleObjCRuntimeV2's class descriptors. The following are now derived lazily:
b9bd5d1 <rdar://problem/12462575> Refactoring a block of shared code in the NSString data formatter
be2e964 Cleanup in the AppleObjCRuntimeV2 to make descriptors lighter-weight so that the cache can be populated faster.
ff06724 Patch from Dan Malea to fix a build break I introduced yesterday. Thanks again Dan!
be2f3aa Changes to clean up the runtime and how the ISA caches are managed.
8b40915 Fixed the redo.py script to emit correct arch and compiler options after dotest.py was switched over to use argparse.
d6d45ce Add a parameter to Symbols::DownloadObjectAndSymbolFile() to control whether we try to call an external program to load symbols unconditionally, or if we check the user's preferences before calling it.
f817d45 Fix a build warning and a dangerous possible crasher.
72a005e Make DebugMapModule destructor virtual since it inherits from Module.
f737d37 Added a new "module" log channel which covers module creation, deletion, and common module list actions.
130a312 Checking in fixes that I used to track down a leaking module. The heap module can now search the vm regions with the --vm-regions options to any of the heap functions. This is currently slow and often will time out when run on a large program since our user expression timeout is set to 500000 usec. We need to add an API to LLDB where we can specify the timeout for an expression.
2cb0203 <rdar://problem/12200505> Fixing a logical error in SBProcess, where the get_process_thread_list function was creating invalid threads_access instances, and hence failing to correctly fill in the list
8b902e2 Silly me! There was a closing ) missing from one of the lines - and Python complained about syntax errors on the next line. It being a Friday afternoon made the rest
c060828 Retrying to apply Vishal's patch - hopefully this time it won't break Jason's build
3051ed7 Move TargetData to DataLayout.
d6b8122 In DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule(), if we have a kernel binary, set the target's architecture to match.
f3f10a3 Revert Vishal's patch that Enrico commited, at least for the weekend. With it applied, starting lldb I get
6937bc1 Make the error message from regex commands use the command's syntax string if it exists rather than a generic but not at all helpful message about not matching some unknown regex...
44c83e1 patch from Vishal Patel to improve our lldb.value wrapper
1a65bfc <rdar://problem/12442990> Fix the implementation of lldb.value.__eq__
2c56666 <rdar://problem/12426557> Fixing the NSIndexSet data formatter
7f65032 Remove "k" as an alias for "kill". It doesn't ask for confirmation and it's too easy to type by mistake when typing "l" (read: I did this once).
e247745 Remove two more cases of "-w write" being specified to watch var set/exp -- that's now the default in the shipped lldb.
da2be4e Improve shortened examples of the watchpoint commands. Document "f <n>" selects frame n. "t <n>" selects thread n but this was just added to TOT so most people won't have access to an lldb that accepts it.
2e9d527 Remove the bt alias I inadvertently added back in in my last checkin.
2753a02 Add one-shot breakpoints (-o option to "break set") and a tbreak alias for our gdb friends.
ed94767 Fix a test failure caused by checkin 165274.
7cbdc32 one more small fix for the gdb-comes-first column order
1a48cb7 Change the "bt" command alias defined in CommandInterpreter::LoadCommandDictionary. It is now a regex command alias that more faithfully emulates gdb's behavior, most importantly, "bt 5" will backtrace 5 frames of the currently selected thread. "bt all" still backtraces all threads (unlike gdb) and for users who have learned to use "bt -c 5", that form is still accepted.
1b09dfe Symbols::LocateMacOSXFilesUsingDebugSymbols() - perform tilde expansion on the dSYM path we find if it starts with a tilde.
54107f2 typeo
3e1399f typeo
62fa877 Update the intro paragraph of text describing the table below to reflect that the columns were just swapped.
704506b Swap the columns in the lldb & gdb command comparison table. I often hear feedback from people that having the lldb commands on the left hand side is non-intuitive -- they say "I want a *gdb* to *lldb* table, not a *lldb* to *gdb* table". It doesn't seem odious to go from the right-hand column to the left hand column but I've heard this same feedback enough that it's also pointless to keep the format lldb-first, gdb-second when it was an arbitrary choice to begin with.
edc4132 <rdar://problem/12099999> renaming SBStream::Printf to Print in the scripting world in order to avoid supporting varargs through SWIG
d49b8e7 A tweak to the previous commit to ensure that we don't try to use -> on a NULL pointer (should not happen but better be safe than sorry)
6dc553b <rdar://problem/12413390> Fixing an issue where synthetic ValueObjects do not properly resolve their value
bf41e19 Ran the sources through the compiler with -Wshadow warnings enabled after we'd found a few bugs that were caused by shadowed local variables; the most important issue this turned up was a common mistake of trying to obtain a mutex lock for the scope of a code block by doing
0d182c0 Removed a directive to delete the test subdirectories from LLVM and Clang. This made "svn update" very unpleasant if the original repository was fetched by build-llvm.pl.
d67fa46 Made the i386 ABI mark EBP as non-volatile, because the unwinders typically can find its value.
58146a9 ClangASTContext::GetIndexOfChildWithName - increment the child index we plan to return as we iterate through the ivars.
b4ba18e Fixed an assertion in the SymbolFile resulting from a NULL ObjCInterfaceDecl.
a787c1a <rdar://problem/12424824> Making sure that we correctly update our synthetic children provider for NSDictionary - providing better support for dynamic types by letting the filter recalculate itself when the type of the object changes
247da33 <rdar://problem/12424824> Making sure that we correctly update our synthetic children provider for NSArray - the same work will need to be done for NSDictionary
4a55d75 Patch submitted by Dan Malea -- I introduced a dependency between ProcessGDBRemote and DynamicLoaderDarwinKernel and a patch was needed to get this building on Linux. Thanks!
a117a5e Remove a few debug printf's that were left in ProcessKDP.
9abbfba <rdar://problem/12099592> Adding back a bunch of code-running summaries
2b2ac8c Don't turn on the debugserver log by default.
d9c3769 <rdar://problem/12408181> Fixing a bug where we would try to look for types in a module, and then fail to look for them anywhere else because the same SymbolContext was being passed everywhere
85d5870 An API in Clang got renamed; fixing LLDB to match.
b46937c The kernel loading code is now isolated in the DynamicLoaderDarwinKernel; remove the duplicates of this code in ProcessGDBRemote and ProcessKDP. These two Process plugins will hardcode their DynamicLoader name to be the DynamicLoaderDarwinKernel so the correct DynamicLoader is picked, and return the kernel load address as the ImageInfosAddress. <rdar://problem/12417038>
63e5cf6 Change DynamicLoaderDarwinKernel::OSKextLoadedKextSummary to use the Symbols::LocateExecutableObjectFile method to locate kexts and kernels instead of copying them out of the memory of the remote system. This is the fix for <rdar://problem/12416384>.
58aa715 <rdar://problem/11791234>
4952db8 Handle KASLR kernel loading for kernel corefiles. Reduce the amount of output that DynamicLoaderDarwinKernel prints for each kext it loads. <rdar://problem/7714201>
fd3d28d <rdar://problem/12349509> Renaming the structure that we use for NSDictionary children
2f1014b <rdar://problem/12406088> Fixing a crasher with adding a regex command, due to accessing a shared pointer without first checking for NULL
b0e3c7c Add the RelocateOrLoadKernel and LoadKernel methods to ProcessGDBRemote::DoRemoteConnect(). When attaching to a remote system that does not look like a typical vendor system, and no executable binary was specified to lldb, check a couple of fixed locations where kernels running in ASLR mode (slid in memory to a random address) store their load addr when booted in debug mode, and relocate the symbols or load the kernel wholesale from the host computer if we can find it.
fac2e62 Add support for debugging KASLR kernels via kdp (the kernel being loaded at a random offset).
4702d43 Now in the presence of an Objective-C version 2 runtime, we read method signatures for both class and instance methods out of the runtime data.
7685a56 <rdar://problem/12378910> Fix a bunch of other places where similar problems could happen
25c9ade <rdar://problem/12378910> Fixing a potential crasher in the data formatters where we fail to check for NULL or empty class name
6d10188 Implementing plugins that provide commands. This checkin adds the capability for LLDB to load plugins from external dylibs that can provide new commands It exports an SBCommand class from the public API layer, and a new SBCommandPluginInterface
77611de <rdar://problem/12398225>
d7a2da5 Fixed a bug where if something went wrong while constructing the ObjCInterfaceDecl for an ISA, we'd continue and try to use that Decl anyway, possibly causing a crash.
c50a1dd Fix a bug introduced in an earlier revision: actually return the StopReason, when we have a StopInfo object.
ee3cb1e Recognize the eax/ebp/eip etc version of x86 register names in addition to the rax/rbp/rip register names when deciding whether a register is volatile or not.
31f175e Fix the extra space char being emitted in this message when breakpoints resolve -
d123b98 Improved the runtime reading to also get data out of the metaclass, so as to enumerate class methods for an object.
437b5bc Wrapped up the work I am going to do for now for the "add-dsym" or "target symfile add" command.
e2801e1 Patch from Dan Malea to get the Bourne shells scripts to run cleanly on Ubuntu.
2a5ca48 Fixed some bugs in the runtime reader code. Also added a parser for method signatures in the Objective-C @encode format.
03f6d64 Ashok Thirumurthi patch to enable the latest and greatest DWARF forms from the DWARF 4 specification.
a004cb5 Fixed a typo.
b924eb6 Added the ability to download a symboled executable and symbol file given a UUID.
73feea4 Change the kdp-remote alias to require a hostname (instead of allowing a zero-length hostname to be specified).
4665745 Implement returning integer values in "thread return" for arm, x86_64 and i386. Also returns floats & doubles on x86_64.
02fac1c If we are attached to a platform, then make sure that we can verify that a process exists when attaching by "pid" before we try and do a lengthy command that could take a while to timeout.
f2e53a5 Added "k" as an alias to "process kill" since the new "kdb-remote" will now conflict with it.
4e8570b Add examples of using the kdp-remote and gdb-remote commands to connect to gdb-remote protocol and kdp protocol systems.
c375043 Add convenience aliases to allow easy attaching to a remote gdb server or kdp (darwin kernel) server with the new "gdb-remote" regex alias and "kdp-remote" regex alias commands.
d9d9463 Added support for the DebugClang configuration to the testsuite.
f46007e Patch by Matt, to get lldb to build with the updated llvm+clang versions (via Makefiles).
df57414 Make lldb more C++11 friendly.
5da95ff Fixed a bug in the path remapper that caused a crash if the path to be remaped was NULL.
3fcc297 Add an API to figure out whether a breakpoint is internal or not.
c0ab9eb The iOSSimulator platform should create a PlatformDarwin with is_host == true so PlatformDarwin knows it can do same-host operations like process lookup. <rdar://problem/12296249>
d0d4902 Added process attach options and also use the SBLaunchInfo and SBAttachInfo.
3acaa92 <rdar://problem/9959501>
4155fe6 Making sure we do not try to compare a NULL string - which would cause us to crash
54e5805 Added a new Xcode build configuration, DebugClang, which builds a Debug+Asserts build of Clang and links LLDB against it. The Debug configuration builds Clang with Release+Asserts, for faster linking and smaller memory footprint when debugging the build LLDB.
310c344 Removed some debugging cruft.
0ea7753 Fix string comparisons in ABIMacOSX_i386::RegisterIsCalleeSaved so that volatile registers are correctly reported for this ABI. We were incorrectly passing up volatile registers from callee frames.
06dc17f Brought LLDB top-of-tree into sync with LLVM/Clang top-of-tree. Removed all local patches and llvm.zip.
f2d324c Made TestHiddenIvars an expected failure with "frame variable". "expr" finds hidden ivars correctly.
30d863d Remove a couple of debugging printf's from the testsuite.
5761398 Missed a few places where I didn't delete the obsolete (commented out) version of the breakpoint creation.
431d839 Fix all the test case breakages caused by folks writing tests all over the place that depended explicitly on the output of "break set". Please don't do this sort of thing!!!!!
4f61ba9 Change the new breakpoint creation output (primarily from "break set") to something more useful.
ac3a8e2 Initial commit of a new testsuite feature: test categories.
e76f8c4 Full KDP process control with per CPU resume and step.
41ea0eb Fixed an oddity in the Objective-C class descriptors where the descriptor took a pointer to an object and expected the Initialize function to dereference that pointer and extract the isa value. This caused one of our tests to fail.
ea63601 <rdar://problem/9959501>
b2c0a12 Fixing a logic error where we would incorrectly show the newly crafted function not found error for a Python function in some cases where the function actually existed and had an empty docstring
bf346eb Fixed a problem where persistent variables did not correctly store the contents of Objective-C classes. This was due to a combination of factors:
f2ec364 Re-adding this previously removed file.
84e46f1 This file is causing problems. I am going to remove it and try re-adding it.
c4b6ab9 Show the size of what we are dematerializing in the output log for "lldb expr".
951ebb9 Compile shared libraries with dSYM files when requested on darwin. Prior to this, we never had dSYM files for shared libraries unless it was a dylib only Makefile.
ad4b169 <rdar://problem/12315386>
d83ecab More work for reading the Objective-C runtime. We can now read the relevant data structures for the method list, and use a callback mechanism to report their details to the AppleObjCTypeVendor, which constructs appropriate Clang types.
b0d2027 Bump to lldb-168, debugserver-193.
f54d145 Update the LLDB_DISABLE_PYTHON ifdef in FormatManager::LoadObjCFormatters to get FormatManager.cpp to build on no-python platforms again.
a53324d A patch that allows for mach-o architectures to be specified as "<number>-<number>" where the first number is the cpu type and the second is the cpu subtype. Also added code to allow use of mach-o architectures that aren't in our tables so that symbolication and static file introspection (crashlogs) can work with them.
807338c Don't get everything when resolving the symbol context of the ObjC Class symbol, just the module + symbol.
fa02bbd Fix to the project file, to prevent it from using an out-of-date compiler in certain cases.
56de6d1 Fix some type-related swig bugs on FreeBSD on x86_64 (and maybe other OS/arch).
c3b0aa9 Updated AppleObjCV2Runtime to load the class data structures more rapidly. Also added fields for the other data structures in a class.
5ec0d02 Added auto LLDB import to the crashlog script.
ae7bebc <rdar://problem/11752499>
af05972 <rdar://problem/12125274>
3b6bd69 Allow for numeric cputype-cpusubtype specifications where the subtype is 0. Use errno to detect strtoul parse failure instead of return value of 0. <rdar://problem/12198994>
5b9f777 <rdar://problem/12188843> Fixing a problem where a Python command created in the same module where the target function is defined causes the help string not to come out
81a5a09 Objective-C runtime class descriptors can now populate Clang ObjCInterfaceDecls with their ivars, methods, and properties. The default implementation does nothing. I have also made sure that AppleObjCRuntimeV2 creates ObjCInterfaceDecls that actually get queried appropriately.
00f9ebe <rdar://problem/11398693> Making sure we do not attempt to run code on zombie objects when attempting to format them
e93725b <rdar://problem/12219840>
3b031d9 Fix a potential issue where data formatters can get confused over malformed UUIDs
defd0dc <rdar://problem/12161825> Rephrase formatter for NSIndexSet in terms of indexes instead of objects
851e30e Stop using the "%z" size_t modifier and cast all size_t values to uint64_t. Some platforms don't support this modification.
3a08fd1 <rdar://problem/11988289> Making C++ synthetic children provider for NSDictionary and related classes
7adfcfd Making ClangExpression hold on to a WP to the Process instead of a SP. This fix should enable us to have per-process maps of ClangExpressions without fear of keeping the process alive forever
db1bea7 Remove a spurious control character coming from trying to save files in Xcode with emacs' ^x^s.
4d0fa04 Make the Class Descriptors able to fetch the class name for unrealized classes
a0d8a78 Re-applied Enrico's patch that I so rudely stomped on.
670891f Stop validating the vtable_ptr since it's not actually guaranteed to be correct
3314d6c Update LLDB_DISABLE_PYTHON #ifdefs in FormatManager.cpp to get it building on no-Python systems again.
6fe8d36 More runtime work. We now successfully traverse the dynamic and static runtime class tables to construct our isa table. This is putting the runtime in contact with unrealized classes, which we need to deal with in order to get accurate information. That's the next piece of work.
458c552 Fixing a potential crasher where the new C++ synthetic children can return a NULL FrontEnd and cause LLDB to crash. This patch introduces a dummy front-end which the ValueObjectSynthetic can use lacking a real FrontEnd
6b70f03 Remove a duplicate frame_sp local that was shadowing the one we copied the incoming SBFrame into.
be0cde9 SBThread::StepOut and SBThread::StepOutOfFrame should both run all threads.
bb9ce3e "thread step-out" should run all threads by default.
fade78a Use the frame index passed into "thread until" rather than using the selected frame.
52124e7 SBThread::StepOverUntil should run all threads. It is running to breakpoints, so running one thread is likely to cause the target to stall.
0b5a40c Extended the "watchpoint set variable" code to support watchpoints on globals.
4bb4f30 Fixed some problems with SWIG bindings.
8e2702e Don't force libc++ and c++11 on everyone.
92cb9a9 <rdar://problem/11374963>
f59388a Make the unwinding of the stack part of "thread return" work, and add the thread return command.
3ba0e14 Updated the demangler to take the fix for a crasher.
aafcd69 Fixed the #defines for YES and NO, and centralized them in one place rather than having them replicated across all the potential function wrappers.
3d35b21 Fixing a typo
44ac98c Fixed an error with a static enum definition where it wasn't NULL terminate and could crash.
3bfaad6 Made the help for the -n option on "target image lookup" a bit better documented by indicating that it takes symbols OR functions.
d605d63 Making sure to create the count attribute in synthetic children providers for libcxx at the right time
f91e78f <rdar://problem/11086338> Implementing support for synthetic children generated by running C++ code instead of Python scripts ; Adding a bunch of value-generating APIs to our private code layer ; Providing synthetic children for NSArray
319af1c Make lldb play nicer with C++11 and fix a (maybe impossible to come by) bug.
27f28e2 Modified the command template to include best practices.
3e26acf Fixing a potential crasher related to running regular expressions against a NULL pointer
0ca065d Patches to make our llvm revision more C++11 friendly.
a508979 Make TestAddDsymCommand not fail since bundles were accepted as add-dsym arguments.
95b765e <rdar://problem/11374963>
a936c6e Don't allow an extra entry to slip into the heap results and also add a better output format
a69d235 Added some documentation and an accessor for the target with an explanation of why to not use "lldb.target".
a17a81a Start at getting "thread return" working. Doesn't work yet.
284a2a3 Add "info func" to the list.
0bf2def Updated the project file to reflect the added and deleted classes.
c718b96 This patch is part of ongoing work to extract type information from the Objective-C runtime.
f993558 Some more typing-related fixes.
4e17f30 Make size_t known before including cxxabi.h (FreeBSD fix)
f08c3f3 Use c++11 and libc++ and it's headers, instead of gnu's libstdcpp
5ebd51f Some more typing-related fixes.
393fc5f Added "heap" command to get info on all allocations on the heap. Currently only objective C objects are supported since they are easy to detect.
560c514 Change the NULL to a 0 since we need a uint32_t
ef9eb80 Remove LLDB_DISABLE_PYTHON ifndef around FormatManager::LoadObjCFormatters() prototype, it is unconditionally present now.
bb1af9c <rdar://problem/11935492>
e6595ea Fixed some logging messages.
0b08e89 Print the stack size followed by the full stack info.
f1dbb71 Initialize a variable to quite a compiler warning.
c2c6514 Typed too fast adding lockers. Actually put them in a locker.
69f834f Shortcut ThreadPlanStepRange::MischiefManaged - if we have pushed new plans and they are not done, then we aren't done either.
1a7b4da Fixed a bug where the LLDB_VERSION wasn't properly truncated during install-headers.
26deffe Added a python example that will compute which functions in a process are hogging the stack.
b995059 Fixed a few places where we were doing:
a48bf37 Playing around with "objc_refs" over the weekend and improved it to work on a large ObjC program without running into expression timeouts. Now we get a full list of ObjC classes using a runtime function and then qsort the result. Also added code that can count all instances of each ObjC on the heap and also the total byte sizes for the object allocations.
a539e5b Fixed a problem where watchpoint conditions would run code when it didn't really need to run.
e820139 Don't allocate memory when enumerting stack. We now have fixed size buffers to avoid this issue.
6218201 Fixed a crash in the testsuite because the wrong type was being completed.
64a41e2 Fiddle with the heuristic about where to set the stop point in a nested inline stack when we get there by breakpoint. If we hit a user breakpoint, I set the stop point to the bottom-most frame 'cause that's what we did before.
ed293ed A bunch of test cases for inlined stepping.
4636552 Make file + line breakpoints even more efficient by using our SearchFilter objects correctly now that we sometimes don't check for inlined breakpoints.
36de3c0 Save and restore the current inlined depth over function calls.
9b124c6 Add SetCurrentInlinedDepth API. In GetFramesUpTo, don't adjust the number of frames for the inlined depth if the number of frames in UINT32_MAX.
4de7328 Added a quick example to show how disasembly output can be customized.
4df2b7f Train LLDB to deal with bad linker N_SO entries that point to our source files for debug map + DWARF in .o file debugging.
c643077 Patch from Andrew Kaylor for linux:
1a450cd Patch from Andrew Kaylor for linux:
45bc4a2 Ensure that the ShouldStopHere plans get called even when doing "virtual" steps.
74d08f1 For now, treat breakpoint hits like regular stops when calculation InlinedStackDepth.
7de0117 Fixing a constness issue in an otherwise trivial patch
df83db8 Restoring an API as deprecated which was removed in a previous commit
1949b1e When you reach the bottom of the inlined stack, don't say you can do a virtual step.
e1a654b Include a useful bit of log output in the "step" as well as the "process" logs.
7eb0831 Patch from Daniel Malea to fix the build on Linux. Thanks
69fdfc9 For the eEncodingIEEE754 registers in RegisterValue::SetType, only accept the first matching type based on lldb's sizeofs. <rdar://problem/12222109>
877e57b Disable the "pretty stack trace" signal handler, which can conflict with accurate crash reporting in multithreaded contexts.
ab77dcb <rdar://problem/12237556>
be7c20a Patch for clang to include the UTF conversion routines that LLDB needs
6c46fe6 <rdar://problem/12211320>
1cc0c05 Turn on the "fancy inlined stepping."
8290bba If the ThreadList ShouldStop restarts the target, don't resume it again.
98d5021 Move calculating the CurrentInlinedDepth to AFTER the synchronous breakpoint callback gets a chance to run. If the stopped event comes in with the Restarted bit set, don't try to hand that to the plans, but just return ShouldStop = false. There's nothing useful the plans can do, since the target is already running.
d27026e Implementing an Options class for EvaluateExpression() in order to make the signature more compact and make it easy to 'just run an expression'
d4330e6 <rdar://problem/12100588>
38ae5b9 Fix the log channel used in Process.cpp.
12ea8fb Making the right thing with regards to disabling summaries on LLDB_DISABLE_PYTHON builds
777c6b7 Modified patch from Matt Kopec that fixes a process launch issue on linux where we wouldn't acquire the process run lock.
c630f31 <rdar://problem/12068655> Make sure [NSDate distantPast] is formatted correctly
9822273 Editing a comment to make sure people know not to blame CFString.py for CFString summary errors
caaf010 Adding to files that were missing in the previous commit
ae2ae94 <rdar://problem/11485744> Implement important data formatters in C++. Have the Objective-C language runtime plugin expose class descriptors objects akin to the objc_runtime.py Pythonic implementation. Rewrite the data formatters for some core Cocoa classes in C++ instead of Python.
4793e94 Patch from Filipe Cabecinhas that uses argparse in dotest.py instead of a hand coded option. I made a few modifications:
8ac035d Patch from info from Daniel Malea that should fix the build on linux after fixes committed with revision 162860.
aaf7fad Improved "objc_refs" a bit to be able to find all instances of a class' superclasses on top of finding the exact class. The current attempt is still too slow, but it lays the groundwork.
0c8fa2d Initial check-in of "fancy" inlined stepping. Doesn't do anything useful unless you switch LLDB_FANCY_INLINED_STEPPING to true. With that on, basic inlined stepping works, including step-over of inlined functions. But for some as yet mysterious reason i386 debugging gets an assert and dies immediately. So for now its off.
3b1afc6 Made it so changes to the prompt via "settings set prompt" get noticed by the command line.
85df60c <rdar://problem/12069589>
243a08c Add a convenience function to get the range containing a given PC specified as load address + Target.
8b4bc2b Make the tab character in the thread frame lines optional.
9b90e87 <rdar://problem/12202862>
84da013 Fix indentation.
565add0 Added command lists that can be executed on launch, stop, crash and exit. Added code to auto import the lldb module that we can use on many stand alone modules.
9aec43d Added an example that show correct usage of the async process event API.
72935d3 Added the ability to verify the LLDB API on MacOSX using a script. Usage is:
1ea06a6 Pushing a new llvm.zip that enables the clang UTF conversion routines
fc04d24 OptionValueFileSpec had an accessor to read the contents of the file and return the data. This can end up being used to get the string contents of a text file and could end up not being NULL terminated. I added accessors to get the file contents raw, or with a null terminator. Added the needed calls to make this happen in the FileSpec and File classes.
df7f13b Fixed a potential crash in PlatformLinux if ModuleList::GetSharedModule() returned NULL.
49ce896 <rdar://problem/11757916>
17d4a7f Instead of using re.split and requiring two spaces between the "regname: regvalue" pairs, use re.findall and specify the regexp of regname: regvalue that we're interested in. <rdar://problem/12188752>
6a99403 rdar://problem/11374963
67dec77 Fix wrong logic with respect to warning messages.
11d6e5e Fix a redundant computation.
915da35 Fixes by Daniel Malea.
8001716 Simplify the typecheck code.
e25c631 Fixing a potential control may reach end of non-void function issue
5b8bfab Data formatters for libc++ deque and shared/weak ptrs - a contribution by Jared Grubb
b2e953d Fix include path for Linux and FreeBSD.
43898d7 Added SBDebugger's log callbacks to Python-land
41609db Add the "expr" command to the gdb command equivalents.
74566c9 Providing an additional Python command example
3e8388c Changed register ValueObjects to report their expression path in a way that can actually be resolved by "expr".
a47e44b rdar://problem/11811338
e1cedff Remove printf that go left in the code.
b8f126a The OS plug-in can now get data from a python script that implements the protocol.
a63665a We have a partially working OS plug-in through python!
7ccb19a Fixing an issue in the OS sample
88b980b Added Args::StringForEncoding(), Args::StringToGenericRegister() and centralized the parsing of the string to encoding and string to generic register.
cec963a Fixing a bunch of issues with the OS plugin code
3e85b63 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
658c5c2 Was forcing everyone on ToT to use the PythonOSPlugin.. my bad
155ee91 Adding bindings to the Script Interpreter for some basic Python OS plugin functionality (still WIP)
39fcd95 Fix a typo.
1247755 Switch over to using object instances for all PythonData objects.
ff72cd0 Clarify the doc string for register-name a bit, add flags.
11595f5 Take '--help' as well as '-h' as hint to emit the usage output.
811708c Document the generic register names in help for register-name.
258db3a Cope with the case where the user-supplied callbacks want the watchpoint itself to be disabled! 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.
c666626 A first version of a bunch of classes that wrap commonly used Python objects in a ref-counting and type-safe C++ API
d815ded 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.
e5f1297 gdb format should default to count of 1. <rdar://problem/12161861>
5787f42 Make the substring un-matching more robust.
806cfa2 Make a test scenario stronger, since, by default, the setting interpreter.expand-regex-aliases is false.
473481b Fix the test suite failures as a result of r162418 check-in.
58edac3 rdar://problem/12022371
9f28285 <rdar://problem/12022079>
ee5bba0 Fix some indenting.
d0bdddf 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.
7021cda Check that the data buffer is non-null before getting its file contents.
50788a8 Change the man page install phase to only run in "desktop" and "desktop-no-xpc" targets, not for the "ios" target.
64df6f1 Modified .lldb-loggings now to direct the lldb log files to the same session directory which also houses the test logs.
15b166d Demonstrate how to use the config file and the pre-flight functionality to route the lldb gdb-remote log messages into individually named log destinations. In the simple usage-lldb-loggings example, we ran two cases which resulted in two lldb_log files.
c6e82e4 Remove further outdated "settings" code and also implement a few missing things.
85fbe9d Fixed a Linux building bug pointed out by Daniel Malea.
8c13064 Fix wrong directory pathname.
73844aa 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
ee188ee Added a test for the Python part of SBInputReader callbacks.
55ea73d Added a typemap and wrappers for SBInputReader callbacks
9262cd5 rdar://problem/11324515
f84e566 Fix test failures in TestWatchpointIter.py due to http://llvm.org/viewvc/llvm-project?rev=162322&view=rev.
af4e966 Remove the process->DisableWatchpoint() and EnableWatchpoint() calls since the sentry object is already doing that.
bd446f1 rdar://problem/12144930
018f2e7 Comment change.
684d401 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.
9c50f83 Fix the wrong comment in TestUUIDMismatchWarnings.py.
16742a6 Fix a crash (_wrap_SBDebugger_SetInputFileHandle -> PyString_AsString) running the test suite. Also modify the boundary condition test case SBDebugger.DispatchInput(None) to be wrapped inside a try-except clause for now.
a809180 Added qVAttachOrWaitSupported packet support.
f590be8 A baton isn't needed to dispatch input.
ec2d127 Add FILE* typemaps for SBDebugger.GetInputFileHandle() and friends.
f68a205 Some eh_frame unwind instructions will define a return address register; 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).
544f2b6 Fix missing braces from the python-GIL merge.
8165d43 Merge python-GIL bracnh (by filcab) back into trunk!
8121d7a Fix a race condition where multiple PythonInputReaderManager instances could, during destruction, tread on the m_embedded_thread_input_reader_sp singleton maintained by the script interpreter. Furthermore, use two additional slots under the script interpreter to store the PseudoTerminal and the InputReaderSP pertaining to the embedded python interpreter -- resulted from the ScriptInterpreterPython::ExecuteInterpreterLoop() call -- to facilitate separation from what is being used by the PythonInputReaderManager instances.
002ce8a Committed a simple dtrace script that tracks process termination, which can be useful to track debugserver's delivery of signals.
7acd60a Fixed some small formatting issues in the help for "command regex." It's now more readable and grammatically correct.
25db51f Fixed a crash when incomplete expression variables are materialized.
a73ad66 Catch timestamps for the beginning and end of the test suite run.
e4ec509 Update build instructions. Patch from "Kopec, Matt" <matt.kopec@intel.com>!
6c061be rdar://problem/12096295
ad01496 Fixed a typo.
519274f A little bit of refactoring.
0b09366 When trying to take snapshots of a watched variable, if the frame is unable to evaluate the variable expression, do not take the sanpshot and forget about the stop info. It is possible that the variable expression has gone out of scope, we'll revise the hit count due to the false alarms.
2f7fd49 <rdar://problem/11589605> Making a 'type category enable *' command to match 'type category disable *'
c9c2a9b Simplify the "Watchpoint ... hit" printout, make it more terse. Change the test case, too.
b454db7 When emulating instructions that read from memory, return 0x0 as the read value instead of uninitialized stack data so we get consistent behavior from the emulator. <rdar://problem/12058770>
4dc86bb Comment changes.
9e98559 rdar://problem/12007576
40819bf <rdar://problem/12087275>
ab20f29 Added a new "objc_refs" command that will track down all allocations on the heap that have the "isa" for the objective C class at offset zero. This will need to be improved to deal with KVO classes, but it is a start. It also disallows looking up a pointer value of zero since that would return way too many matches.
124e690 Add an option to "process continue" to ignore the next <N> crossings of the breakpoint under the currently selected thread.
caddaf4 <rdar://problem/11791234>
9885ef3 Revert changes where we copied the expression locations back to using the reference into the debug info until test suite failures are resolved.
9880efa Add explicit casts to bool in "shared pointer is valid" constructs that return bool.
1edae5f Change the minimum deployment target to 10.7 since clang requires 10.7 to use the new libc++.
4fa86fe <rdar://problem/11791234>
392d9e0 Use the file completer for "process launch" arguments. <rdar://problem/11274012>
e773e4d Remove a little unuseful output from the UnwindPlan::Row::Dump and UnwindPlan::Dump methods.
2836136 Add command completion test case for 'watchpoint command'.
caadc0d Fixed a potential crash where we attempt to read an invalid register.
97600c1 rdar://problem/11457143
f3ec461 rdar://problem/11457143 [ER] need "watchpoint command ..."
3908bb1 Added back member initialization for m_batch_command_mode, which was most likely removed accidentally a while back. The consequence occurred recently probably due to our swicth to build with c++11. This fixed 3 test failures.
879de48 <rdar://problem/11578397> Adding a new --summary-string option for the frame variable command which allows the user to provide a summary string with which he wants to display the variables without having to make a named summary first
2299466 Turn on function args by default in thread & frame formats. <rdar://problem/11703715>
535543d <rdar://problem/10449092> Adding a new uppercase hex format specifier. This commit also changes the short names for formats so that uppercase hex can be 'X', which was previously assigned to hex float. hex float now has no short name.
1e1e6cb LLDB no longer prints <no result> by default if the expression returns nothing. There is now a setting, "notify-void." When the user enables that setting, lldb prints (void) if an expression's result is void. Otherwise, lldb is silent.
1221358 <rdar://problem/11505459> Stripping off the object's type from the output of the 'po' command
dd50fe4 llvm.zip rebuilt with libc++ for Mac OS X.
4582fea On Mac OS X, lldb will now build c++11 and use libc++. We also no longer use the GNU extensions to C++ and C (we didn't use them anyway).
4761ca3 Made lldb.swig include <string>, which it requires.
b386d82 Removed explicit NULL checks for shared pointers and instead made us use implicit casts to bool. This generated a warning in C++11.
91815a4 When compiling with C++11, switch from hash_multimap to unordered_multimap.
76d834e Now that the testcase is fixed, it is no longer an expected failure.
9a56a71 <rdar://problem/12061386> Fixing data-formatter-cpp test case - previous version had an unfortunate dependency on the value of uninitialized memory
b842a11 The C++ data formatter tests are flaky. Marking them as expected failures until they are fixed.
f466956 Fixed the delay that was happening when quitting lldb from the command line. We weren't initializing the command pipes when constructing a ConnectionFileDescriptor with a file descriptor.
96abc62 Added a 'void' format so that the user can manually suppress all non-error output from the "expression" command.
0e1d06d Indentation fix for dotest.py.
c056664 Make dotest.py runnable from a directory other than lldb/test
c1ca9dc <rdar://problem/11975483> Removing user-visible references to 'dict' as a parameter name for Python summary-generating functions since it is a Python keyword.
59959eb Made "call" another alias for "expression --", for people used to the GDB command.
5741df7 Added the ability to set the architecture from two numbers that represent the mach-o CPU type and subtype in the format "%u-%u" or "%u.%u". This can of course be followed by vendor and OS.
0d66ca9 <rdar://problem/11576169> Better documentation string for the -Y option to frame variable
fd953a2 Added fix from Pawel Worach.
7206874 Start working on the test suite in FreeBSD
f4b54c8 Fixing an issue where ValueObject::GetPointeeData() would not work correctly for file addresses when fetching items other than the 0-th
b42f1c8 Changed the Opcode::GetData() API so that it didn't require an AddressClass, which is useless at this point since it already knows the distinction between 32-bit Thumb opcodes and 32-bit ARM opcodes.
3da64ae Fixed an error in the thumb opcode encoding. We need the 32 bit thumb instructions to be encoded as a 32 bit value for the EmulateARM code.
e662457 Updating Xcode project version numbers for lldb-165 and debugserver-192
1424a5e Improved raw disassembly output for Thumb.
e8c020c <rdar://problem/12029894>
5016669 Pull in cxa_demangle.cpp/.h from llvm's libcxxabi project. Change the namespace to lldb_cxxabiv1 for the time being. Mangled.cpp is not wired in to call it yet.
5a60f5e <rdar://problem/12027563> Making sure that some class of stop-hook commands that involve po'ing objects do not cause an endless recursion
6f72da8 Updating Xcode project version numbers for lldb-164 and debugserver-191
b87efc9 <rdar://problem/11846023> Fixing a bug where malformed DWARF could lead to an endless recursion with synthetic children
894eab4 Silence the "Command ... failed!" message when not running in trace mode. You run with trace mode by passing '-t' to the test driver.
4f28c31 Instructions generated by a disassembler can now keep a shared pointer to their disassembler. This is important for the LLVM-C disassembler because it needs to lock its parent in order to disassemble itself.
ee1747d Make the objc-runtime work with Python 2.6
f6132ef <rdar://problem/11275622>
1cddbaa When building up the UnwindPlan based on eh_frame unwind instructions, be sure to allocate new UnwindPlan::Row's each time we push a row on to the UnwindPlan so we don't mutate it any further.
f6d5fea Fixed a problem where stepping out would turn into a continue if the unwinder didn't unwind correctly.
ca2c707 <rdar://problem/11862570> Fixing a potential crasher related to Python locking
40a3976 <rdar://problem/11620586>
d8ae7f2 Don't set the thread when adopting selected execution context entries, and use the "lldb_private::StateIsStoppedState(StateType, bool)" function to tell if the state is stopped.
67aa5b6 Make glibc and its developers happy. Circumvent the lack of strlcat in glibc.
df80272 Fixed ePathTypePythonDir for Linux and FreeBSD (at least). This works for non-installed compilations. I will test further.
cafcc6c Added a few more summaries I find useful for lldb.
2975ada Fixed the expression parser to ignore C++ and Objective-C method names when looking for functions in the top level or a namespace. Method names should only be found via FindExternalLexicalDecls.
5d90ade Added an lldb_private & equivalent SB API to send an AsyncInterrupt to the event loop. Convert from calling Halt in the lldb Driver.cpp's input reader's sigint handler to sending this AsyncInterrupt so it can be handled in the event loop. If you are attaching and get an async interrupt, abort the attach attempt. Also remember to destroy the process if get interrupted while attaching. Getting this to work also required handing the eBroadcastBitInterrupt in a few more places in Process WaitForEvent & friends.
083b376 Changed the IRForTarget pass to ensure that all sel_getName() calls are generated for all Objective-C selectors before static literals are moved to the static allocation. This prevents errors of the form
9347d44 Don't have ExecutionContextRef::SetTargetPtr fill in the frame information if we're not stopped. This could try to read registers etc when the process is still running and debug builds of lldb would assert down in GDBRemoteRegisterContext.cpp ReadRegisterBytes because we couldn't get the sequence mutex for talking to the remote system. Non-debug builds would just silently fail when doing this. <rdar://problem/11941758>
c3ba2af Relax the test for "is the frame I am going to step back out to the one I started from" in ThreadPlanStepOverRange so you don't artificially reject stepping out of a function you stepped into when stepping through an inlined range.
a0b1450 Updating Xcode project version numbers for lldb-163 and debugserver-190
4ff1741 Integrated a fix to LLVM's disassembler that corrected the offsets for x86_64 conditional branch instructions.
73f6b49 Add a call to "sync" a thread state before checkpointing registers in preparation for calling functions. This is necessary on Mac OS X, since bad things can happen if you set the registers of a thread that's sitting in a kernel trap.
c1e15f8 Make git not delete some empty dirs. Otherwise a git checkout would be different from an svn checkout.
3aeb286 Provide subdir of StopInfoMachException.h in #include.
025f160 Sanity check the result of Symbol::GetPrologueByteSize - make sure it is not greater than the size of the Symbol returning it.
56b9f80 Use a more efficient API to tell if a process belongs to springboard or not.
1850f94 Added a fix that allows newly-constructed objects to returned by expressions, by removing the __cxa_atexit call that would normally cause these objects to be destroyed. This also prevents many errors of the form
4078a30 Handle backslash protection inside unquoted commands like:
01ee952 Added a fix to LLVM that corrects PC-relative branch address printing in the x86 disassembler.
3a458eb Add "vAttachOrWait" to debugserver, so you can implement "attach to the process if it exists OR wait for it" without race conditions. Use that in lldb.
292cca8 Change the things we pass to Mangled::SetValue to be ConstStrings instead of char*'s - Greg removed the methods which accept char*'s earlier today.
02300fb Fixed the file header to match the filename.
40c10a5 Fixed the comment for the lldb_private::PathType enumerations.
483d00a Changed ProcessGDBRemote to avoid the reserved port range. Also added a comment indicating that more work is needed.
2806c76 Make git not delete my_working_dir. Otherwise a git checkout would be different from an svn checkout.
ef898c5 <rdar://problem/11908082>
c024004 Cleaned up the lldb_private::Mangled class to get rid of the tokenizing code that has bit rotted and isn't being used. Also cleaned up the API to the "lldb_private::Mangled" to always take "const ConstString &" arguments instead of both "const ConstString &" and "const char *".
9b98ffd <rdar://problem/10998370>
4e72503 Removed a hack that gives zero-length arrays a single element. Also modified our struct test case to test this.
090d19b Cleaned up incorrect STL std::map comparison code and use the operator == on std::map objects instead of manually implementing the comparisons. Also modified the UnwindPlan::AppendRow() function to take a "const RowSP &" object so we don't have to copy shared pointers when calling this function.
3092c1e Add useful documentation to the "target.source-map" setting. <rdar://problem/11893881>
77f281d <rdar://problem/11852285>
2475712 Update the project and schemes to the Xcode recommended settings.
b2b6d03 Call "drain" on the auto release pool as it will do the right thing for both GC and non-GC apps. It will also quiet the static analyzer.
4a379b1 Ran the static analyzer on the codebase and found a few things.
a092d90 Change UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly so it records the state of the unwind instructions once the prologue has finished. If it hits an early return epilogue in the middle of the function, re-instate the prologue after that epilogue has completed so that we can still unwind for cases where the flow of control goes past that early-return. <rdar://problem/11775059>
b438699 Lock around reading as well as connecting & disconnecting so we don't start reading after someone has set our file descriptor to -1 and crash in FD_SET... <rdar://problem/11653966>
6cca969 <rdar://problem/11672978> Fixing an issue where an ObjC object might come out without a description because the expression used to obtain it would timeout before running to completion
a838b42 Enable the "symbolicate" interactive command to symbolicate all crash logs if no indexes are supplied. This can be handy to use as:
add4b95 Fix an off by one error when handling a packet where our read buffer size truncates the first chunk of the packet between the two chars representing the checksum.
68fa4ec Switch nearly all of the use of the UnwindPlan::Row's to go through a shared pointer to ease some memory management issues with a patch I'm working on.
e9d2ca1 Bump to lldb-162 / debugserver-189.
b3a1a2b <rdar://problem/11870357>
6adf91f Fixing a buildbot issue in GDBRemoteCommunicationServer due to an undefined constant in latest commit
7de2a3b <rdar://problem/11782789> Changes to the watchpoint implementation on ARM so that we single-step before stopping at the WP. This is necessary because on ARM the WP triggers before the opcode is actually executed, so we would be unable to continue since we would keep hitting the WP. We work around this by disabling the WP, single stepping and then putting the WP back in place.
911ed94 Revert the change I committed yesterday, it caused a regression with one armv7 unwind. I'll look at updating this or finding a different way of fixing it later tonight.
b573bd6 Be a little more safe when checking whether the current symbol context is a C++ or Objective-C instance method.
efbdd22 Add accessors on process to get & set the selected thread by IndexID (useful since that's the one that "thread list" shows and it won't get reused even if the underlying system thread ID gets reused.
e9fcfd9 Updated LLVM and added a fix to LLDB which allows LLDB to distinguish between multiple anonymous structs/unions in the same class.
4ebd5ce <rdar://problem/11773899> Formatters for BOOL* and BOOL&
5cee84b <rdar://problem/11628688> Making sure to use the ostype format for OSType values
9aa8002 <rdar://problem/11753405> Making sure we deal correctly with signed NSNumber values
007f73a Show source by default for the first 4 frames of the crash thread. Also added options to allow showing source for all frames (--source-frames=NFRAMES) and for all threads (--source-all).
aa7df34 Added the ability to see source context with each frame in the "crashlog" command with the "--source-context" (-C for short to match grep) option.
4d8c543 Resolve source paths that start with ~ when doing substitutions.
002b3cf Make the setting for "target.process.thread.step-avoid-regexp" work for inlined functions, not just concrete top level functions.
f6e7358 When parsing the epilogue of a thumbv2 function, when we see the frame pointer overwritten with the caller's fp value, return to expressing the CFA in terms of the stack pointer. <rdar://problem/11855862>
352f3cd Unify how we get host version on Mac OS X & iOS. Also remove our dependency on UIKit & AppKit. Cleaned up the project files a bit.
cbacba1 <rdar://problem/11740973>
7e26fd3 Added a check to the Section to make sure we don't return sections that don't have valid modules.
bcaf99a <rdar://problem/11791234>
a5689d5 Blacklisted a UUID that is generated by OpenCL on Mac OS X, because the UUID is the same for all OpenCL-generated dylibs and therefore would conflict.
a9dd2a0 Provide more information when process launch can't change directory to the path passed with -w
3ce4df5 Add a command channel to wait on along with the file descriptor the ConnectionFileDescriptor class is managing, so we can always pop ourselves out of our select call regardless of how well behaved the channel we are talking to is.
c529786 Added a mutex to the call frame info to guard generation of the FDE index.
5b0afcc Add a new 'target modules show-unwind' command to show the different UnwindPlans for a function. This specifically does not use any previously-generated UnwindPlans so if any logging is performed while creating the UnwindPlans, it will be repeated. This is useful for when an lldb stack trace is not correct and you want to gather diagnostic information from the user -- they can do log enable -v lldb unwind, image show-unwind of the function, and you'll get the full logging as the UnwindPlans are recreated.
2a4e9af Added an editline fix to make the delete key act as expected on Mac OS X.
8d78980 Removed unused variable to quiet a warning.
941f5da Modifying the "address" format, which prints a pointer and a description of what it points to, to detect when the deref of that pointer points to something valid. So if you have:
4c5c429 Added the ability to search through sections for pointer data.
c4bbbfc If we hit a breakpoint but there's a thread specifier which doesn't match this thread, return no stop reason.
110accf Don't call DoOnRemoval if you are just peeking at events.
5b0a5ac Fixed a bug that caused the Process not to rebroadcast the fact that a process exited while running a thread plan. For example, if a user types the expression
316f57f Fixed an issue where if you ask to search the global list of modules for a module with "target modules list", if it found a match in the current target, it would skip looking at the global list. Now if you ask for the global list, we use it and skip the target.
a7d3dc7 <rdar://problem/11852100>
ddb2ece Fixed a hang which causes LLDB to enter an infinite loop if "memory read" is run with the -t option and the type name contains a keyword like "struct" that isn't followed by a space. Now if a keyword isn't followed by a space we continue searching after it, instead of at the beginning of the type name.
b88c0a9 Turning the interpreter mutex into a static global to avoid a potential leak. Might need to be turned back into a pointer if it causes issues with the destructor chain.
c5c10a4 <rdar://problem/11751427> Fixing an issue where multiple threads could concurrently try and initialize Python and cause crashes
c9ce068 Improve dynamic type resolution efficiency by looking for the type in the module that contains the vtable symbol first and only look for the first match. If we don't find anything, _then_ move on to the rest of the modules in the target and watch out for multiple matches.
d962094 Add lldb.1 to the xcode project file, add a copy files phase to install it. <rdar://problem/10613024>
b23bb8e Fixed typos found while reading commit logs.
c2775b8 Fixed errors and warnings on debug code.
aa3d89e Make error messages more user-friendly for the 'target delete' command.
7fad24a Simplify the CreateDefaultUnwindPlan methods for the x86 and arm unwinders a bit -- we're creating the UnwindPlan here, we can set the register set to whatever is convenient for us, no need to handle different register sets.
1ab86f7 On i386 we see occasional crashes when the register context is not returning valid registers yet. Don't crash in these situations.
545762f <rdar://problem/11357711>
0d0f56d Make const result value objects able to return dynamic types.
78fa855 Fixed a crasher that happens if we try to inspect a NULL symbol file.
e6eff65 Fixed a crash in the class uniq'ing code where we didn't check if the two classes had the same number of members.
e82d8ed <rdar://problem/11819635>
96f6df8 Since SBTarget::FindFunctions returns a SBSymbolContextList, we should include the relevant header file.
1ee6d9f Fix a wrong variable name.
36eb7c0 Change the "run" / "r" command alias to not use --shell for lldb running natively on arm - on iOS we have to do some extra work to track the inferior process if we launch with a shell intermediary. <rdar://problem/11719396>
1f6d04b Bump versions to lldb-161, debugserver-188.
d106696 <rdar://problem/11806995>
54ce4db Added a new example that extracts all global variables from an object file and prints any available info.
2b03efe Fixed a potential crash if a metadata category we write into doesn't already exist.
06b8449 Work around some problems destroying a process with older debugservers.
dcf5614 Make the interactive command interpreter build into the "crashlog" command work correctly when run inside LLDB. Before this fix the "cmd.Cmd" object was trying to read from stdin itself and it was competing without command interpreter for the bytes.
edd601a <rdar://problem/11800213>
c8cf5cc Improved the name comparing logic a bit.
0d2c541 <rdar://problem/11744001>
86827fb Add an "extra-startup-commands" process setting so we can send some command strings to the actual process plugin to interpret as it wishes.
2a94be1 Added documentation for many of our python properties and also made the property help show up by declaring the properties correctly. We previosly declared properties into a local "x" variable, what I didn't realize is that the help will use this as the property name for the help output.
d874666 Spelling fixes.
2530d95 Spelling fixes.
26a24b7 Make 'watchpoint set' default to write instead of read_write.
d47c792 Added information on how to get API documentation in a "Documentation" section.
126b344 <rdar://problem/11755446> Making sure to provide summaries for one more NSString subclass
7b3a49b Make the error message when we time out waiting for debugserver to reply to the qLaunchSuccess packet less cryptic.
2b69a2b Listen to the "--verbose" flag when running "crashlog" and if verbose is enabled, then dump full paths to source files and modules.
5f2343e Fixed a logic error which stopped paths from being properly remapped.
f79dcd4 Added a new top level "Resources" group for plist files and moved a few dylib and .a files into the "Libraries" group.
2f676aa <rdar://problem/11679380> Make sure we do not fallback to software stepping when hardware stepping should work but fails to get enabled. Also removing dead code paths
5c5a38e Added the ability to read the dSYM plist file with source remappings even when DebugSymbols isn't used to find the dSYM. We now parse the plist as XML in the MacOSX symbol vendor.
11fb921 Fixed the "target modules list" to not crash in Debug builds due to an assertion where the mutex in the "module_list" local variable would assert when the lldb_private::Mutex would destruct. What was happening was the mutex in the module list was being locked by a local locker object and then "module_list" would get destroyed before the locker and the locker still had the mutex locked which would cause the pthread call to destroy the mutex to fail with "Resource busy" and it would cause a mutex leak.
698e94a Modify the ranges_access() helper function to be able to lookup the address range in a block given an address. Since blocks can have multiple discontiguous ranges, it helps to be able to get the current address range for the current block in a frame. This can be used in code like:
ad50280 Fixed the get_process_thread_list function to correctly return a list of all threads in a process.
3a70d5d Make the IsValid() operator for SBLineEntry "do the right thing" by returning true if the line entry is valid, not just if the opaque pointer to lldb_private::LineEntry is non NULL.
ca1500f Added a "save_crashlog" command to the lldb.macosx.crashlog package that allow you to dump your current process state out to a crash log file. This will dump all of the target module information with all load addresses, UUID values, and shared library paths, as well as all thread stacks and the crash log header. This will make it easy for us to save the current state of a process and then reload it later into LLDB.
e8fc036 Fix the copy constructor and assignement operator for ModuleList to be thread safe.
0cae063 Check the return status of the make command.
073d595 Remove dependency on internal header file.
839de39 Make a way to set the result status for Python defined commands, and don't overwrite the status of the result if the python command has set it.
fdbd10a Fix ignore counts on breakpoints so they actually work.
bc8c499 Add API logging to SBCommandInterpreter::HandleCompletion().
d14a0bd The StepOverBreakpoint plan should only explain eStopReasonTrace. It didn't cause any other exceptional stop reason.
403648d DNBLogThreadedIf already inserts a newline
fd3b35d Additional comment in ObjectFileMachO::ParseSymtab to explain the layout of the dyld shared cache file and how we're stepping through it; also use offsetof to find offsets of struct elements.
b62abd5 Preliminary set of changes to ObjectFileMachO::ParseSymtab when lldb is being run on iOS natively and we are examining a binary that is in the shared-cache. The shared cache may be set up to not load the symbol names in memory (and may be missing some local symbols entirely, to boot) so we need to read the on-disk-but-not-mapped-into-memory cache of symbol names/symbols before we start processing the in-memory nlist entries.
5bec0ae Bump version number to lldb-160.
dee13ce Continue the cleanup started on r158737
1032089 Chnage VerifyWatchpointIDs() from a static function to a class function to be called from other source files.
a9e2887 Test suite cleanup: use Python API to remove files as part of cleanup instead of running OS commands.
d1e0829 rdar://problem/11649610 lldb confused by single quote in executable path
33a9f64 rdar://problem/11390100
6064862 Incorporate suggestions from Jim, add "USING LLDB" and "FILES" sections.
088684d Change the Mutex::Locker class so that it takes the Mutex object and locks it, rather than being given the pthread_mutex_t from the Mutex and locks that. That allows us to track ownership of the Mutex better.
1d970e7 Minor fixes for ARM/iOS targets:
da26bd2 Make raw & parsed commands subclasses of CommandObject rather than having the raw version implement an Execute which was never going to get run and another ExecuteRawCommandString. Took the knowledge of how to prepare raw & parsed commands out of CommandInterpreter and put it in CommandObject where it belongs.
2ed5c75 Add a test case for r158222.
be315a6 rdar://problem/11487457
3fcc91a Fixed TestCompletion, broken by r158173
7f8dbdf Remove empty line at end.
748b92d Add a simple man page for lldb.
716a664 Committed a change to the SectionList that introduces a cache of address ranges for child sections, accelerating lookups. This cache is built during object file loading, and is then set in stone once the object files are done loading. (In Debug builds, we ensure that the cache is never invalidated after that.)
f90b5f3 Added a setting (target.process.disable-memory-cache) that controls whether memory is cached. This is off by default (i.e., memory is cached) because it greatly improves performance.
ee306fa Add API logging for SBDebugger::MemoryPressureDetected.
a1ba314 <rdar://problem/11538779> Fixing issues where Python scripts were not able to read user input and/or display output to the user in certain situations - This fix introduces a Python InputReader manager class that mimics the behavior of the interactive interpreter in terms of access to I/O and ensures access to the input and output flows
56d31ec Added the --all argument to "target modules lookup" that forces all matches to be looked up. When --all is not passed, and the current execution frame can be used to narrow down the search, "target modules lookup" will try searching in that specific frame first. Only if nothing is turned up there will it go on to search all modules.
07fb7b2 Update wording for the member field m_error.
a442da2 Add the SBWatchpoint::GetError back, we have clients who use it.
8247e62 Fix a place in GDBRemoteCommunicationClient::SendContinuePacketAndWaitForReply where we weren't taking m_interrupt_sent into account. Also don't reset m_interrupt_sent in SendInterrupt but do so in SendPacketAndWaitForResponse when we know we've handled the interrupt. Fix a code path through ProcessGDBRemote::DoDestroy where we were tearing down the debug session but not setting the exit status.
4389256 Make sure that when if we are going to Halt while the process is in the middle of HandlePrivateEvent we wait till that is done. We need a stronger way to do this, but in practice this works and using some locking strategy is harder because Halt & HandlePrivateEvent generally happen on different threads.
9d0f508 rdar://problem/11598332
8acac7b Whitespace cleanup.
7f206ba <rdar://problem/11597333>
e4b5ec0 rdar://problem/11597911
233935b Make sure the module_uuid_ptr is non-NULL before checking whether its contents match the module's UUID.
9c4a344 Funnel the old API call SBValue::Watch (bool resolve_location, bool read, bool write) to the one which takes an SBError.
8a5ce77 Cannot break the existing API client of SBValue::Watch(bool resolve_location, bool read, bool write). Leave this method in the codebase for a while.
1b62f59 Cleaned up some stuff in symbolication where we can now lazily get images when symbolicating after loading a crash log file.
3f88349 rdar://problem/11584012
f081dab -i option should apply to "-n" as well as "-F".
a23b441 Fixed handling of Objective-C properties to ensure that automatically generated setters/getters only get added to a class after explicitly declared (or synthesized) getters/setters had the chance to be added. This eliminates conflicts creating errors of the form:
12b7ea3 Patch that fixes log messages in SBValue.cpp from Lau Sennels.
1e0e73a Give more explicit error messages when watchpoint creation command (watchpoint set) fails, like number of supported hardware watchpoints reached or the watch size is not allowed.
4d35f88 Properly initialize the member fields used for hardware watchpoint transaction management.
a377286 Fixed a problem where detaching from a process left a read-write lock dangling, causing crashes in debug builds.
a10207d Use Log::Printf() instead of printf().
5693e87 rdar://problem/11320188
ee301fa Added "kill" as an alias for "process kill".
be23f05 Fix a typo for 'waitfor' option help wording.
2462948 <rdar://problem/11548378>
e828693 Added the ability to disassembly GDB remote packets with the python file. This will make it easier to symbolicate the packet log output since we can use the lldb.utils.symbolication package module to symbolicate register values.
5d673ae Register the ProcessGDBRemote plugin ahead of the ProcessKDP plugin so a process connect without any plugin specified picks up the gdb-remote plugin by default.
b7b2532 When the Platform launches a process for debugging, make sure it goes into a separate process group, otherwise ^C will both cause us to try to Stop it manually, AND send it a SIGINT, which can confuse us.
0d99969 If the Driver's input reader gets an Interrupt and the current command line is empty, then treat that interrupt as an instruction to Stop the process of the currently selected target.
bab9b64 Add an API to determine whether there are any characters on the current input line.
b51d99b For hardware watchpoint enable/disable, in case the kernel call to set the revised debug state fails, we need to recover the local cache to the previous known state.
bbf6aa5 Thread-hardening the SB API calls related to watchpoint operations.
70e167f <rdar://problem/11486302>
a3368dd Added the ability to run "symbolicate [options] <crashlog-index>" in interactive mode.
d07b4f5 Fix a bunch of thinko's in the command "thread continue".
59e19a1 When we are preparing all threads to run, if the overall run state of a thread is "suspended" that should override the thread's thread plan's run state.
f98dc35 Made nil resolve as (id)0 and not be looked up (which regularly conflicts with existing symbols in Objective-C).
775f853 <rdar://problem/11486302>
dac2e5a FreeBSD patch by Viktor Kutuzov
4336d93 Fixed a missed case in the patch to make HandleCommand take a LazyBool instead of a bool.
01bc2d4 <rdar://problem/11328896> Fixing a bug where regex commands were saved in the history even if they came from a 'command sourced' file - this fix introduces a command sourcing depth and disables history for all levels of depth > 0, which means no commands go into history when being sourced from a file. we need an integer depth because command files might themselves source other command files, ...
a224377 <rdar://problem/11562050>
5fa6cd3 <rdar://problem/11537498>
bf12090 Mark the test as failing on both architectures, since LLDB won't handle the function to clang.
0f95dda Make the test suite work again on Mac OS X without the LLDB_BUILD_TYPE env var
61f17c0 Clean all files when executing 'make clean'
57b74dd Clean renamed files on 'make clean'
9336790 We were accessing the ModuleList in the target without locking it for tasks like setting breakpoints. That's dangerous, since while we are setting a breakpoint, the target might hit the dyld load notification, and start removing modules from the list. This change adds a GetMutex accessor to the ModuleList class, and uses it whenever we are accessing the target's ModuleList (as returned by GetImages().)
1e1a6ca Make dbgnub-config.pl work with multiline env vars.
40a2043 For dump_register_value() sub-routine, issue a return after an error condition occurs.
49170d4 Check for NULL modules coming into the SearchFilter's ModulePasses & PlatformDarwin::ModuleIsExcludedForNonModuleSpecificSearches functions.
153bcca Insert dynamic checks only if the appropriate checker functions exist.
35f5dc7 rdar://problem/11541676 Do not show the derived registers like "eax", ... for the vanilla "register read" command. Also add a test scenario for that.
e23940f Fix arch_helper() to return the list of supported architectures.
299aa70 rdar://problem/10996978 - Fixing an issue where crash reports for the expression parser might include symbols from the user's application
2f1efa9 Commit Charles Davis' patch with some additional modifications.
dd26f36 Update the Makefile to expect the lldb package
1377f38 Don't include LLDBWrapPython.cpp here. Use it in Interpreter.
93024d9 Continue the work started by Dragos' Makefile patch (LLVMLibsOptions usage)
9ea7d87 Substitute LLVMLibsOptions for LD.Flags so we can find the mentioned libs
e6adacf Remove all written files
dc43bbf Fixed memory management issues introduced by revision 157507.
746323a rdar://problem/11535045
f4ec2ea Fix the comments about LLDB_DISABLE_PYTHON in the python swig shell scripts to be more clear.
e4f3cd7 rdar://problem/11533713
21049c4 Fixed a crash in logging when the name of an entity imported by the ASTImporter had a NamedDecl with a name that wasn't a plain string (e.g., a selector).
54e3371 <rdar://problem/11535465>
04e6ada <rdar://problem/11534686>
3a5dc01 Fixed an issue where we might have easy access to the string table data for a mach file from memory even though we have a process. So now we don't read the string table strings from memory when we don't have to.
4ae7823 Bump to lldb 152.
528cc2c Add support for function with stack frame checks added by the compiler; these functions will end in the sequence
8ca4fa7 <rdar://problem/11529853>
4ff16d7 Fix missing Resources/Python directory for macosx build.
b7e62f8 Change the "Debug" build to use the current MacOSX SDK. Fix the swig builder to have an explicit short-circuit of the Python SWIG building, rather than relying on the SDKROOT being set.
7c09997 rdar://problem/11457634
191343e Add SBProcess::GetNumSupportedHardwareWatchpoints() API and export it through the Python scripting bridge. Add/modify some test cases.
7cbdcfb Add the capability to display the number of supported hardware watchpoints to the "watchpoint list" command.
021086a extra ';' outside of a function [-pedantic,-Wextra-semi]
9a23bec Small fixes: actually return a boolean and remove semi-colons.
f4928de Process::Destroy should Halt before it tries to destroy so we don't have race conditions where we are in the middle of trying to service an event when we go to Destroy. The AttachCompletionHandler should note that it has restarted the target if it indeed does so.
fc34abb Add more convenience registers to x86_64 and a simple test scenario:
6070eeb Integrated a fix for an ARM disassembler crash (0xd 0xd 0xa0 0xf4, or "vld2hs.8 {d0[], d1[]}, [r0]!")
6b6031d Fix a typo.
96bdd73 Add a test case to check that eax's content equals the lower half of rax. Plus fix the test class name as well as wrong directory path.
8a178b6 The RegisterInfo descriptors for the convenience registers can specify an offset to be added to the offset as derived from the value_regs field, which is useful for future expansion purposes. As of now, we have:
627ca95 Fix wrong offset of eax and friends pointed out by Greg.
7f293ab Return a constant of the appropriate type.
293b98f Remove trailing semicolons.
d2e3066 rdar://problem/11487457
e72b338 Fix a bug where if I just run:
2cf5ccb Also push file & line breakpoints past the prologue. Also added a "-K" argument to the relevant "break set" commands to set this per breakpoint. Also, some CreateBreakpoint API's in the lldb_private namespace had "internal" first and "skip_prologue" second. "internal should always be last. Fixed that.
57e0ff4 Added support for rvalue references in debug information (actually, mainly just hooked up support that was already there). Added a test case, although it's expected to fail right now unless you're using top-of-tree LLVM.
81cd0af CompileUnit::ResolveSymbolContext was only filling in the LineEntry regardless of what was passed in for "resolve_scope". I fixed that.
4207296 Updated the object-pointer lookup logic to fix Objective-C "self," which is not a regular pointer.
267b9d9 Fixed the new-syntax testcase to reflect how we print string literals.
d0a0980 Fixes for performance to data formatters - Python < 3.0 is much slower when using True/False as compared to 1/0 for logical values. Wexploit this to our advantage. Other minor tweaks
39d1af9 Fixed a nasty bug where JIT expressions didn't work when stopped in a const method. Also updated our testsuite to ensure that JIT is forced in this case.
7b71b17 Added an "rb" alias that sets breakpoints by regular expression.
b1a7143 Integrated a check into Clang that make sure that it doesn't try to call LookupDestructor on an incomplete class.
96e02ab Added a GDB equivalent for saving binary memory data.
6b1763b <rdar://problem/11355592> Fixing a bug where we would incorrectly try and determine a dynamic type for a variable of a pointer type that is not a valid generic type for dynamic pointers.
f7d782b Fixes the case where we created a dummy target, deleted it, and then tried to evaluate an expression with no target.
45bc395 Updated LLVM to take a disassembler fix that causes the LOCK prefix to be printed explicitly when it's the first prefix on the instruction.
8967a8f bump to lldb-150.
eeeb2af Forgot to bump the local string buffer up in size after debugging to make sure long strings would be correctly read when the buffer is too small for the string.
3864f04 Add test cases where we start three worker threads, with a write watchpoint set. As soon as a watchpoint is hit in either of the worker thread, we delete the watchpoint. The test succeeds when no more watchpoint hit event fires after the deletion of the watchpoint.
dd29b97 Found a quick way to improve the speed with which we can read object files from memory when they are in the shared cache: always read the symbol table strings from memory and let the process' memory cache do the work.
9d1fa2a Warn when we detect a valid dSYM file that is empty. This can happen when a dSYM file is created from a binary with no debug info, that has been stripped, or when the .o files are not available when the dSYM is created.
dc5e877 Cleanup a custom thread-format so we don't fail TestLoadUnload when running the test suite for two architectures (the full path to d.c would appear).
6bf058b Optimizations to the Python ObjC formatters - Benchmarking infrastructure
cd1b7fc Fixed the test for the new process launch abbreviation.
cf5927e <rdar://problem/11386214> <rdar://problem/11455913>
2e4ca56 bump to lldb 149.
9986a3b rdar://problem/11140741
20c3708 Make the debug output that comes as printf's from code called in the target for getting ObjC class names and ObjC method implementations only come out when doing verbose logging.
86c50d7 <rdar://problem/11405850>
930f10a I have updated Clang to include support for Objective-C boxed expressions returning numbers and strings.
bb55057 <rdar://11477301>
aad177d Reduce the timeout value for the "get class name" and "po" functions to .1 second. 1 second (what they were before) is way too long.
03e5e51 If we notice that a module with a given file path is replaced by another with the same file path on rerunning, evict the old module from the target module list, inform the breakpoints about this so they can do something intelligent as well.
f42d3f6 We shouldn't save g_dummy_target_sp. Other code will simply call Destroy() on it.
eb4cd8d Make sure to subtract one from the PC when doing the symbolication of stack frames when it isn't the zero'th frame.
0578f45 Bump to version 148.
4bc8d16 Warn the user when several commands match the input given. Added a testcase.
82b147f <rdar://problem/11439755>
5d44dcc Fix a typo.
f061318 Enabled C++11 in the expression parser. auto and various other syntactic sugar work. Lambdas do not due to some problems relocating code containing lambdas. Rvalue references work when returned from expressions, but need more testing.
5df5dda Disassemble the signal number and also the mach exceptions when dumping stop reply packets.
35f62f8 Fixed an exception when parsing crash logs.
f2d3e8d Updated LLVM to fix a problem where the Thumb disassembler improperly sign-extended the target for BL instructions in certain cases.
e39170b Update the comments for lldbtest module. The test driver is the only way to run the test suite.
47dcd1e Make the script more friendly when running under python debugger.
8aa684d The redo.py script can take no argument where it uses heuristics to find the latest session directory.
4f397a2 Don't do a stat compare of the module with its underlying file if we already matched the UUID.
a80d1e8 Add GetID to the .i file.
8492371 Cleanup after functionalities/alias/TestAliases.py
67b402c Make sure that our thread list can't get out of date like was happening before Jims fix in revision 156894.
f63f2ba Always call RefreshStateAfterStop when we get a stop event. We were skipping doing it in the case where we had interrupted the target. Presumably at some point in the past RefreshStateAfterStop was done more directly when we handled the interrupt, but it isn't any more so now we need to do it all the time.
1c4ae3e Add an accessor on SBBreakpointLocation to get its location ID.
ad4be9a Bump debugserver version # to 187.
a6909bd Bump version # to lldb-147.
45c47aa Add LLDB_DISABLE_PYTHON around newly added methods in DataVisualization.h / DataVisualization.cpp / ValueObject.cpp and FormatManager.h / FormatManager.cpp
53628e7 Set the result status correctly for asynchronous step-in/out/over commands.
d2a9d9b Fix comment typeo.
70eddeb Change lockdown API use in RNBSocket::ConnectToService. <rdar://problem/10800927>
7461e23 Fix Makefile to pass the correct -arch flag to the toolchains.
e585240 <rdar://problem/11246147>
08af598 Include llvm/ADT/STLExtras.h from lldb/Utility/Utils.h and use llvm::array_lengthof(), instead.
f3e5da2 Add i386-only expectedFailure decorators for current ToT.
0cbaacd Modified "image lookup -t <typename>" to expand typedefs.
2ad894b <rdar://problem/11455398>
c2c822c Fixed a typo: "aync" => "async"
469e08d <rdar://problem/11451919>
bd5c23d <rdar://problem/11240464>
a695aa2 Fixing a bug where the summary for certain NSStrings was being returned as empty in spite of the string actually having a content
79aaca0 Fixing a typo in the lldb-gdb webpage
b7cdd6c Fix missing NEON registers for the 'register read' command with the lldb debugserver which supports the 'qRegisterInfo' packet that dynamically discovers remote register context information.
9721fe9 Add a useful error message to "log enable" with the wrong number of arguments, and reject "log enable lldb" which just silently did nothing before.
ca0761b <rdar://problem/11439169>
5b0025f <rdar://problem/11439022>
d1ec3d6 Fix a comment I had incorrectly altered.
d82bc6d Found one more place where the OkayToDiscard needs to be consulted. Also changed the defaults for SBThread::Step* to not delete extant plans. Also added some test cases to test more complex stepping scenarios.
07f258f Remove comments and an extra print statement.
3cae38b Make every Python API __len__() method return a PyIntObject.
01584eb Fix SBProcess::ReadMemory's typemap to handle PyLongObjects.
22cf41b Make issue_11588/Test11588 work with a recent swig that converts ints to PyLongObjects
110b55f Don't try to use "OkayToDiscard" to mean BOTH this plan is a user plan or not AND unwind on error.
1a7f630 Fixed an issue in the platform options where if no architecture was specified where the platform would fail to select itself with something like:
8ec3513 Add "echo" -> "script print".
bf47965 More fixes to "malloc_history".
d8056e2 Modified the symbolication.Image object to store its uuid as a uuid.UUID object and made an accessor for getting a normalized UUID value out of the image object.
5a4e5af Don't intercept the quit command and override what is was doing. This was causing the "lldb" command line to deadlock when the quit command was executed sometimes.
6f446f3 "--stack-history" now works if you have MallocStackLogggingNoCompact defined in your app's environment.
f4e3044 Fixed a build error.
7a24576 Added the ability to get the stack history for a malloc block. This is a work in progress. Checking this in so I can work on it some more.
2bb4de3 Make crashlog.py more robust when dealing with the "Version: ..." header from the crash log file.
37a07e9 Updated LLVM/Clang to force the record layout engine to complete C++ classes before traversing their base classes.
492b123 Sanity check the return value from SBSCopyApplicationDisplayIdentifiers() before calling CFArrayGetCount() on it.
23c3fcd <rdar://problem/11388521>
ea93bf4 Remove stuff from the xcscheme file that need not be checked in.
0fef968 <rdar://problem/11330621>
038fa8e If the ObjC Step Through Trampoline plan causes a target crash, properly propagate the error back to the controlling plans so that they don't lose control.
90f7856 Added a #define of NULL to 0 to make NULL usable in expressions.
8ab2c22 Make ctrl-c terminate the current input line and start an empty line, instead of the previous content.
6884bdd Option processing fix: should match '-F' exactly, instead.
1b8de0a Make redo.py more error-proof
18ae2b1 Remove the string pool from the global destructor chain so it doesn't get yanked out from under us prematurely on exit.
f92ddcc Print out a notification when the process of a target other than the currently selected target stops.
07baf83 <rdar://problem/11338654> Fixing a bug where having a summary for a bitfield without a format specified would in certain cases crash LLDB - This has also led to refactoring the by-type accessors for the data formatter subsystem. These now belong in our internal layer, and are just invoked by the public API stratum
da23dff <rdar://problem/11400476>
79a5926 <rdar://problem/11408853>
651cbe2 <rdar://problem/11239650> Fixing a bug where the SetValueFromCString() method failed to operate on dynamic values. The fix consists in making the set operation fall through to the parent. We only actually allow this if the dynamic value is at a 0-offset from the parent, or the new value is 0. Other scenarios would need agreement on the actual meaning of the set operation (do we keep offsetting? do we just assume the user knows what they are doing?) so we prevent them, and let the expression parser deal with the complexity
4c87ebf Fixing some indentation.
7402d3b A simple implementation of a summary and synthetic children providers for LLDB-specific shared pointers - This could be generalized to work with C++11 shared pointers with relative ease
d9488c8 Removing spurious friend declaration
4758a3c First part of a fix to make GetNonSyntheticValue() work correctly
5f2b926 <rdar://problem/10605072>
1ccfba6 bump TOT version number to lldb-146 to match the checkin on the branch.
b170aee <rdar://problem/11358639>
8d03c6f Add clarification comments.
a63c538 Updated LLVM to take a fix for disassembly of Thumb branch operands.
6f4a115 Updated to a more meaningful macro name.
6092371 Fix the problem that 'help breakpoint set' is printing a lot of redundant lines. Correctly specify the LLDB_OPT_SET's that the 'shlib' command option belongs to by using a newly added macro like this:
cf0bc6d Add an -F option to the redo.py script to selectively re-run only those failed sessions whose filenames contain the component(s) specified. For example:
3bbbdc3 Move the el_source() call after the section of code which sets up the default "ctrl-r" and "ctrl-w" bindings so that user-provided .editrc has a chance to override the lldb's default key bindings.
5c33a42 Updated LLVM to fix bad disassembly of operands and occasionally failure to recognize instructions. This problem affects ARM and Thumb BLX instructions.
e61ec7f Remove repeated word.
78c180a Fixed some strncat/strlcat uses.
abd370a Jason Molenda convinced me that we should make ctrl-w on the command line bind to ed-delete-prev-word. If you have ctrl-w key binding specified with your .editrc file, it will be overridden with ed-delete-prev-word. :-)
8533e99 Missed a few uses of Mutex::GetMutex in template functions that don't seem to get instantiated on the Mac OS X build, but were causing build failures on Linux.
fc58af2 Added an "attach" alias as promised on the web page.
1b584eb Don't expose the pthread_mutex_t underlying the Mutex & Mutex::Locker classes. No one was using it and Locker(pthread_mutex_t *) immediately asserts for pthread_mutex_t's that don't come from a Mutex anyway. Rather than try to make that work, we should maintain the Mutex abstraction and not pass around the platform implementation...
9d01042 Added an interactive mode to the "crashlog" command so that we can look at multiple crash logs at once and do some data mining. Added an interactive command prompt that allows you to do:
2b53695 When the current thread state is NULL, PyThreadState_Get() issues a fatal error. Use a gentler API PyThreadState_GetDict(), instead.
35dd496 Fix a think in Mutex::Locker::Locker(pthread_mutex_t *) Really should lock the mutex handed in, not the m_mutex_ptr that you've set to NULL... Rework the Host.cpp::ThreadNameAccessor to use ThreadSafeSTLMap - we've got it so we might as well use it. Also works around a problem with the Mutex::Locker class raising fallacious asserts in debug mode when used with pthread_mutex_t's that weren't backed by Mutex objects.
cb740b3 In ProcessGDBRemote::DoConnectRemote(), if the remote system informed us of its architecture, use that to set the Target's arch if it doesn't already have one set.
a889aee Fix the following error when importing crashlog.py from a Python interactive session:
88e3de2 Clean up the usage of "MasterPlan" status in ThreadPlans. Only user-initiated plans should be MasterPlans that want to stay on the plan stack. So make all plans NOT MasterPlans by default and then have the SB API's and the CommandObjectThread step commands set this explicitly.
ee033f2 Document the fact that you can repeat "-n" and similar options to make one breakpoint on multiple names.
4e46867 Fix AttributeError when using crashlog with verbose mode.
6a04353 Adding a new 'type category disable *' feature that disables all categories - This is intended as a quick kill switch for data formatters for cases where the user wants as little extra processing as possible to be done on their target, or to override major data formatters bug, should they occur
302100f Patched our local Clang to fix a crash when parsing classes/structs that have variable-length arrays at the end.
1990449 Update the docs to reflect the recent changes to categories
c0791aa Mentioning in the docs that Python commands can have docstrings
7950572 If a command takes options and arguments, the help text should warn the user to use "--" to terminate the options.
14f17cf Jeeze... Remove two unneeded #include's of ThreadPlanTestCondition.h, and replace them with includes of ClangUserExpression that were being errantly dragged in through same.
13e52a6 Forgot to commit the change deleting the ThreadPlanTestCondition files from the project.
b5d55cf Cleanup - removing the ThreadPlanTestCondition and its helper functions. It is not needed, since we now run the condition in the StopInfoBreakpoint's PerformAction, and don't need to refer it to another "continue". Actually, we haven't needed to do this for a year or so, I just hadn't gotten around to deleting the dead wood.
707b7a8 Fix reporting of stop reasons when the StepOver & StepIn plans stop because of a crash or breakpoint. Added the ability for a plan to say it is done but doesn't want to be the reason for the stop.
99c63be Use a cache of the results of "GetFileAddress" from a symbol in the Comparator we are using to sort the various lookup indices by symbol address. When we switched to weak pointers, this lookup got slightly slower. Not enough to matter for most uses, but in the sort algorithm it does matter.
8a6f3e9 Added a --force option to "memory read," disallowing reads over 1KiB in total size unless the user explicitly allows them.
5564b58 Clarify "watchpoint set" help text.
fbbede5 Bump to lldb-145.
e1ef1e3 Clean up the way modules are looked for when calling Target::GetSharedModule(...). We were ignoring remapped files, even if they were valid. Also if we have a UUID, we should check our global module list first.
c76486c Don't call SBDebugger::SetInternalVariable in the sigwinch_handler, since that takes locks and potentially does allocations. Just call SBDebugger::SetTerminalWidth on the driver's SBDebugger, which does the same job, but no locks. Also add the value checking to SetTerminalWidth you get with SetInternalVariable(..., "term-width", ...).
26c05d9 Made the IR interpreter move all floats, not just "wide" ones, to its own constant pool. This reflects the fact that the LLVM code generators for different targets move floats to their constant pools under varying conditions, and the JIT cannot (yet) be relied upon to relocate references to its constant pool correctly.
13bf85c Patch from Filipe Cabecinhas.
45dbebf Patch from Filipe Cabecinhas.
664b099 Patch from Filipe Cabecinhas.
b7a22b2 Patch from Filipe Cabecinhas.
7aeed48 Patch from Filipe Cabecinhas.
9e8865e Save more memory by not parsing the symbol table for stand alone DWARF files. We currently have SymbolFile plug-ins which all get the chance to say what they can parse in a symbol file. Prior to this fix we would ask the SymbolFileDWARF plug-in what abilities it had, and it would answer with "everything", and then we would check the SymbolFileSymtab plug-in what abilities it had, in case it had more abilities. The checking that SymbolFileSymtab does is a bit expensive as it pulls in the entire symbol table just to see if it can offer a few scraps of debug information. This causes all stand along DWARF files to pull in their symbol tables even though those symbols will never be used. This fix will check all SymbolFile plug-ins for their abilities and if any plug-in responds with "everything", then we stop the search.
87677ee Add an Error string specifically for when we hit an ENOMEM when trying to mmap a file fails so parent caller function can provide helpful information to use about what went wrong.
ce035a0 Automatically enabling the Cocoa formatter categories for command-line LLDB. Previously, the categories were filled in but disabled by default. Tweaking test cases appropriately to keep working and do the right thing
356bcc0 <rdar://problem/11271074> <rdar://problem/11285931>
431d26d Patch from Viktor Kutuzov: changes the method declarations to const for the Args::GetCommandString and Agrs::GetQuotedCommandString methods. It allows using of these methods within the other const methods.
3e33979 Make the libheap.dylib build into a consistent temp directory so it can be reused between lldb invocations. Also add the module name into the directory path that is used to store the target triple specific build of libheap.dylib.
0ff10b5 Fixing a typo in the NSArray data formatter
f8c2370 Make sure the end of the first line is still within the function, and if not, don't push the prologue past it.
1dae6f3 Remove the "-x" from the finish-swig-Python-LLDB.sh shell options so it doesn't print out all of the commands when executing the shell script.
a5c2ce0 Returning data formatters to their previous working condition - Plus fixing an issue that was preventing Python oneliners from executing
0ffff1e Hardened LLDB against NULL identifiers being passed into FindExternalVisibleDeclsByName.
dff3f44 Suspend program threads before sending the SIGSTOP & resuming, so other threads won't get into trouble while we are waiting for the SIGSTOP.
d6d067a Fixing an over-substitution of text
66148c6 Make the C++ formatters importable by having them use the right package to import and reference the Logger
6f2f0ab Now that we have an LLDB package, make the "lldb.macosx.crashlog" module work with all of the new module paths.
b11f4a0 Bump to lldb-144.
0d235d5 Making the Cocoa formatters comply with the new on-disk layout of the Python resources - This is one of the steps towards making the data formatters work again
65e3dcb Ensure that lldb/runtime is not a dead point in the Python package hierarchy - This is a first preliminary step in fixing data formatters after Greg's changes to the Python resources on-disk layout
a666550 Remove unneeded files.
aa0489c Move the source and Makefile into a directory so it will be easier to install.
70fa461 Renaming to rid of the '++' in the test file name and simplify the Makefile.
f4c2c68 Make the Makefile stand alone.
73260da Fix the docs for "breakpoint command add" to specify the arguments passed into the python function.
89f099b Removed a binary that I accidentally committed.
49749a7 Recognize Objective-C classes with runtime class ObjCPlusPlus as Objective-C classes. Really the compiler should say they have Objective-C runtime class, but we should be a little more resilient (we were refusing to find ivars in those classes before).
4e651b1 Maked LLDB into a package so we can import things without poluting the global namespace.
20c1307 Made it safe to re-import a Python module, allowing the same test to be run multiple times in the same session.
c315bdc Fixing a bunch of i386 testsuite failures
6b028d6 Change Target::ReadMemoryFromFileCache to not read from the file if the section is marked as encrypted. It will likely be readable in live memory. <rdar://problem/11305675>
2a45d0e Make the test case more robust in terms of remote testsuite execution.
800bd70 Forgo the selector test on i386, where we can't test whether an object responds to a selector from outside the process.
0eba719 Create an NSAutoreleasePool correctly in a test case so that the Objective-C runtime doesn't complain about lack of one, causing the test case to fail.
1463b65 Add a suffix rule for compiling objc++ files and a sample directory under test/lang/objcxx.
ba0893f Fixing a typo in the previous commit that broke the build
4d609c9 Fixing an issue where the expression parser was not correctly freeze-drying bitfields - This patch ensures that (a) freeze-drying bitfields works correctly and (b) that we actually access bitfields through IR instead of the 'frame var en lieu of expr' shortcut, for added safety in corner cases that may arise
3bc7e5e Add a '-R' option, which is similar to '-r', except that the relocated directory, if exists, will be removed entirely before running the test suite. A usage example looks like this:
cbff0fb <rdar://problem/11291668>
0821057 Fixed a crasher that occurs when an expression doesn't return a result. If that expression can't be run in the current context (for example, if it uses a function and there is no running process) then we used to try to destroy the nonexistent result variable. We now only destroy the result variable if we actually made one.
6f7f8da Added support for the LC_ENCRYPTION_INFO load command.
862fd5c Report the command error when we are in "stop on error mode."
2a76fbf A small fix for ObjectFileMachO::ParseSymtab() where a pointer into the middle of a vector was being used after the vector may have been resized. <rdar://problem/11284937>
d67dc54 Fixing the test case so that it runs correctly on i386 as well as on x86_64
79bdadd Removing the @expectedFailurei386 decorator from test cases that now work as a result of the latest changes to Value.cpp
2d34a50 This patch fixes a bug where LLDB was incorrectly setting the address-size on a DataExtractor to be sizeof(void*) when the ValueObject came out of the expression parser This worked correctly for 64-bit targets, but broke down data formatters in i386 mode. The formatters would try to read pointers out of the frozen-dried objects, but were unable to do so because they would try fetching 8 bytes from a DataExtractor with only 4 bytes in it. This patch fixes the issue by always making the pointer-size for a DataExtractor match the target setting.
796152f Pass *this in explicitly to save the FileSpec copy construction.
73a3571 Added the ability to log a message with a backtrace when verbose logging is enabled to the Module class. Used this new function in the DWARF parser.
c705730 <rdar://problem/11282938>
f0bc815 Added the ability to specify the symbol file for a module when adding it to a target.
67898a0 Test file renaming.
6a3f9af Implemented zext as a no-op cast in the IR interpreter.
25f800e Bump version to lldb-143.
1ced142 Remove the expectedFailure decorator as the bug has been fixed.
9098fee Added code to automatically load the libheap.dylib when ptr_refs, cstr_refs or malloc_info are called. If MallocStackLogging is enabled, then you can now use --stack to dump the backtrace of the code that allocated each malloc block.
0f485ea Method name change to avoid further conflicts when merging from ToT to branches/lldb-platform-work.
4c983c8 Fixed some issues with symbolicating things. Fixed symbolication.add_module() to not use the resolved_path before we have tried to locate it. Fixed crashlog.locate_module_and_debug_symbols() to return true and false correctly.
e787c7e Make sure the "synchronous breakpoint callbacks" get called before the thread plan logic gets invoked, and if they ask to continue that should short-circuit the thread plans for that thread. Also add a bit more explanation for how this machinery is supposed to work. Also pass eExecutionPolicyOnlyWhenNeeded, not eExecutionPolicyAlways when evaluating the expression for breakpoint conditions.
e7cf9c4 Added logging so we can see when we are trying to complete a forward type and pull in the world. This is due to a compiler bug we are tracking (<rdar://problem/11291658>) where forward decls to classes and types are not properly scoped in namespaces, which results in the current LLDB looking for a type it will find many times in the accelerator tables, but never match. For example, when debugging with clang we get a forward decl like:
808e92a Don't put the address of the module in the module basename as this hoses up our ability to find shared libraries by name. We now put it into the Module object name.
7482159 <rdar://problem/11259893>
ceb7a52 Missed one place where the assert should have been in a #ifdef. Thanks Jason.
80b4de8 Tests decorated with @benchmarks_test do not participate in the remote-macosx test suite run. But, still, tearDown() should call super.tearDown(), not super.setUp(). :-)
be45227 LLDB test suite should also output the config info string along with the stack trace. rdar://problem/11283401
e6d88a8 Simplify the progress bar display when neither "-v" nor "-t" is passed to the test driver.
7e4690c Updated LLVM to take a variety of ARM disassembler fixes. The ARM disassembler is now crash-free on all opcodes.
fb3c775 The session file name should be tagged with (architecture, compiler) in addition to the already existing (test result, test id) to avoid collision and to facilitate postmortem analysis.
ac4583a Not a test failure for i386; instead, the test case should be modified to not over-expect type fields for the synthetic childs.
92e6acd In debug mode, assert when we fail to get the sequence mutex. We need to remove as many places where this can happen as possible.
09db284 bump version to lldb-142.
027aaa7 Switch to setting the write side of the run lock when we call Resume. Then make a PrivateResume that doesn't switch the run-lock state, and use that where we are resuming without changing the public resume state.
67130e4 Add expected failure decorators for test cases which are failing for i386 architecture. Plus fix some test cases to skip/succeed for i386.
ffc9247 Add a WriteTryLock function.
2f41d27 The plan stack should never be used while empty. GetCurrentPlan is the entry point to contol logic for the plan stack, so assert here if it gets called with an empty plan stack. <rdar://problem/11265974>
9274ba3 We take the API mutex first and the stop mutex second in general, so do it here as well.
663067f Make sure EmulateInstructionARM doesn't have to have "armv4", "armv6", "armv7" as the exact architecture name, the arch name can just start with any of these strings. We need to be able to recognize different variants that might come along and not fail to backtrace completely (which happens when we aren't able to find an architecture that matches) when we don't have exact matches.
29021d3 Added an iOS local debugging optimization when reading the __LINKEDIT section data for files in the dyld shared cache.
fea3199 Find and allows users to use the cached SDK's that might be in "~/Library/Developer/Xcode/iOS DeviceSupport". Also enabled PlatformRemoteiOS to select an SDK using the build number in case you have mutliple 5.0 SDKs installed:
ac9ebba Bump to lldb-141.
82a17a2 Add armv7s to recognized cpu type for arm instruction emulation.
a4974db We now record metadata for Objective-C interfaces, Objective-C methods, and Objective-C properties.
b58879a Update the way SDK directories are found so we are not reliant on the old "Latest" symlinks in the DeviceSupport directory.
77d4071 Make sure an error is returned when Process::LoadImage() fails.
1bfdb8d When an AST import fails, provide the metadata for the original Decl, for debugging purposes.
3a44a6c Bump to lldb-140.
6c797dc Disabled spell checking in the expression parser, which incurs large overheads in terms of type parsing and importing.
a414e67 Fixed the ability to load multiple __LINKEDIT segments at the same address for darwin shared cache entries. Now when registering the load address of a section, the DynamicLoader objects can specify if they should warn or not. This will fix the ability to load the nlist entries for shared libraries in the darwin shared caches when no on disk representation is available for a shared library.
ac97a6b Add the capability of supplying the pre/post-flight functions to the test suite such that the pre-flight code gets executed during setUp() after the debugger instance is available and the post-flight code gets executed during tearDown() after the debugger instance has done killing the inferior and deleting all the target programs.
9747118 Added a new host function that allows us to run shell command and get the output from them along with the status and signal:
d897b28 Added a --lldb option to override the location of LLDB.framework.
0e82f8e Made sure that the collections of mutexes used in checking for LLDB mutex validity are static so that entries put in there actually persist between calls to error_check_mutex.
78dae82 Patch from Viktor Kutuzov <vkutuzov@accesssoftek.com>:
04003a1 Updated LLVM to take a variety of fixes to disassembler problems:
887f62d The API lock was getting dropped too soon in GetVariables. GetValueObjectForFrameVariable could run the target (to get dynamic values) and that requires the target lock.
9aa4b84 In debug mode, assert if we haven't initialized a mutex we thought we'd initialized.
a8d26eb Don't do the work in DoTakedown if the thread plan isn't valid. Also fixed up some logging.
f641af3 The run all threads timeout in RunThreadPlan should respect the user timeout, not be arbitrarily 10 seconds (which was too long anyway...) Also added some logging to RunThreadPlan and made others more regular.
3355946 Added the thread ID (tid) to each packet history item and the packet history now always dumps to a lldb_private::Stream.
4fd809c First step to make the test suite runnable for remote platforms.
1e58cef Factor out a bunch of common code in the two ThreadPlanCallFunction constructors. Also add a sanity check - try reading the frame, and if we fail bag out.
2b0210b <rdar://problem/11193466>
5b4905d Couple more places in SBValue where you need to take the run-lock.
f19b0c8 ThreadPlanCallFunction's destructor wasn't calling DoTakedown, so if the that plan got discarded we weren't doing the takedown.
93e5ba5 Added a --memory option to allow dumping the matching malloc block memory with a default format that makes sense, or that format can be overridden with the --format option.
ff3448e <rdar://problem/11241798>
6bf31e8 version bump to lldb-139.
b7f08ea Updated llvm.zip to include a fix for a leak in the MC disassembler.
2a29bd5 Ditto 'requires modern objc runtime' for TestRealDefinition.py -- fix test suite errors for i386.
92c3b9e Added more complete error checking for mutexes only for "Debug" builds where we always check if a mutex is valid prior to doing stuff with it. We also track when mutexes are initialized and destroyed and keep these in sets that can very subsequent pthread_mutex_XXX API calls.
f999a77 Ditto 'requires modern objc runtime' for TestObjCProperty.py -- fix test suite errors for i386.
77fa1b7 Fix some test suite errors. TestForwardDecl.py errors were due to bad Makefile.rules, while TestHiddenIvars.py errors due to features only available in modern objc runtime.
fafffe0 Added a mechanism for keeping track of where in the debug information individual Decls came from.
7fb1430 Expose GetAddressClass() from both the SBAddress and SBInstruction so clients can tell the difference between ARM/Thumb opcodes when disassembling ARM.
8f14b3f Fixed a problem where LLDB inserted regular C FunctionDecls into classes if it looked up a method in a different DWARF context than the one where it found the parent class's definition.
f5902cb Fixed some expression issues after switching to void * args.
2642585 Fixed an issue that happens in LLDB versions after SBFrame switched to using a lldb::ExecutionContextRefSP where we might segfault due to using a shared pointer with NULL in it. The SBFrame object should always have a valid lldb::ExecutionContextRefSP in it. The SBFrame::Clear() method was doing the wrong thing and is now fixed.
c8dd570 Remove the GetSequenceMutex timeout that isn't being used in the GDB remote plug-in.
bff7841 A few tweaks done to the heap.py in me free time where we now have:
7fa7b2f Make sure that DoResume doesn't stall if we shut down the async thread while DoResume is waiting for packet confirmation. Also added a bit more logging. Also, unlock the writer end of the run lock in Process.cpp on our way out of the private state thread so that the Process can shut down cleanly.
5ba82b9 Cleanup, keep private types separate from private member variables.
53a5a99 Make sure frozen_sp for a ClangExpressionVariable is non-NULL before asking for its name.
bb4800e Make the default architectures to run as both 64 and 32-bit.
b2e2c38 Fixed a crash in Clang when a superclass of an Objective-C class doesn't have a definition but Clang tries to read through its protocols anyway.
5056169 Cleaned up code that was getting SBData for an SBInstruction.
9666644 Cleaned up the code and we now also dump the dynamic object for the malloc block. Using this on the lldb/test/lang/objc/foundation test we can see this in action:
466ea1f Get rid of absolute path in "process load" command.
e93e24f Added a new "heap.py" module that adds a new command line command that can find values on the heap and print out the dynamic type of the malloc block that contains the data. I will be modifying this a bit more to tweak the output and make the output more useful.
b4b0b25 Fixed an issue that would cause a crash when dumping fully qualified types.
d41abdc Added a property to get the dynamic type which uses the most permissive way to get a dynamic type.
516f084 No functionality changes, mostly cleanup.
b94dc87 Tweak arm variants list for valid arches settings.
561bf58 Improved detection of ARM branch instructions to cover all possible condition codes.
1629856 Added more documentation in the header file to explain how to use the results that are found by the function calls to find_pointer_in_heap().
a59bc3f Fixed head_find to compile again.
6cbd7bc Set variables returned by utility functions to not consume slots in the persistent variable store.
a1f645e Added a new packet to our GDB remote protocol:
5a9f85c A general stability fix where we _always_ get the thread list immediately after we get the stop packets. We had some racy conditions where thread 1 might be sending a packet and thread 2 tries to send a packet to get the thread list and it fails and ends up with an empty list. Packets use a sequence mutex to be able to ensure when you send a packet, you get the resonse. This sequence mutex is take when the process is running, and as we exit the running state and notify our process with the stop packet, we now always get the thread ID list before we do anything and before we can run into race conditions.
d21d98b Two changes,
e93055a Clear the "m_actual_stop_info_sp" in the thread during Destroy. It might be a StopInfoThreadPlan, and that would hold onto members that need to be destroyed while the Full thread is still around.
ae93235 Trying to solve our disappearing thread issues by making thread list updates safer.
1aa5405 Fixing a problem where some uninitialized cases of vectors could cause diagnostic output from the synthetic children providers - this time the fix should work
451fa82 Added a packet history object to the GDBRemoteCommunication class that is always remembering the last 512 packets that were sent/received. These packets get dumped if logging gets enabled, or when the new expr lldb::DumpProcessGDBRemotePacketHistory (void *process, const char *log_file_path) global function is called.
3847401 Removed an include that wasn't needed.
7c2d140 Fixed an issue that could occur when looking up functions inside of a namespace where if the NamespaceDecl hadn't been parsed yet, we would say a function wasn't in a namespace.
2bcbaf6 Rework how master plans declare themselves. Also make "PlanIsBasePlan" not rely only on this being the bottom plan in the stack, but allow the plan to declare itself as such.
860b9ea <rdar://problem/11202426>
77147c2 Linux/ProcessMonitor: include sys/user.h for user_regs_struct and user_fpregs_struct.
a74c142 Version bump to lldb-138.
621a802 Fix a integer trauction issue - calculating the current time in nanoseconds in 32-bit expression would cause pthread_cond_timedwait to time out immediately. Add explicit casts to the TimeValue::TimeValue ctor that takes a struct timeval and change the NanoSecsPerSec etc constants defined in TimeValue to be uint64_t so any other calculations involving these should be promoted to 64-bit even when lldb is built for 32-bit.
9e2c8ea Removed redundant isxdigit checks and added the ability to GetHexU8() so it can extract an 8 bit hex value if one is available. It will set EOF if "set_eof_on_fail" is true or if out of data. This allows a string decoder to grab a string without losing the last part of the packet with a packet like "414243,abc" (it can extract "ABC" and leave the file position set to the comma).
33bff9a Hardened the struct layout code to eliminate a potential crash if the underlying type couldn't be completed.
1831e78 We sometimes need to be able to call functions (via Process::RunThreadPlan) from code run on the private state thread. To do that we have to spin up a temporary "private state thread" that will respond to events from the lower level process plugins. This check-in should work to do that, but it is still buggy. However, if you don't call functions on the private state thread, these changes make no difference.
5aa97e0 Changed some tabs to spaces to make Python like this file.
9f29ecd The remaining time calculation didn't reflect the --start argument. Fixed that.
5b616ec The final batch of adding @dsym_test/@dwarf_test decorators.
61d39dd Removed a call to truncate() which slowed down the stress test by a LOT.
364b48e Updated the disassembler stress tester with two new features:
21b1984 Second batch of adding @dsym_test/@dwarf_test decorators to existing test cases. Plus some minor cleanup of test method names. Third and final batch is coming.
72c17bf Fixed ModuleList::FindTypes() so that when a symbol context is supplied that contains a valid module, it will search that module first, then if we are still looking for matches (we have found less that "max_matches"), search in all of the other modules as well.
eec2f08 Fixed a leak in the LLVM disassembler where we did not destroy the underlying disassembler in our destructor.
9f95fb6 In a prior commit, I changed the parameters around on a ModuleList::FindTypes where the old parameters that existing clients were using would have been compatible, so I renamed ModuleList::FindTypes to ModuleList::FindTypes2. Then I made fixes and verified I updated and fixed all client code, but I forgot to rename the function back to ModuleList::FindTypes(). I am doing that now and also cleaning up the C++ dynamic type code a bit.
e2f71a3 Check if the two clang opaque type pointers are equal before doing anything more exhaustive comparison.
9f3c98e Added logging when API calls try to do something that shouldn't be done when the process is stopped by having logging calls that end with "error: process is running".
a3ed7d8 Add a new option to the test driver, -N dsym or -N dwarf, in order to exclude tests decorated with either @dsym_test or @dwarf_test to be executed during the testsuite run. There are still lots of Test*.py files which have not been decorated with the new decorator.
5345c1c Add flag to warn about ivar initialization reordering.
a0f8b09 explicitly cast the value.
ce96dad Order ivar initializers to how they're declared in the class.
432fe10 Order ivar initializers to how they're declared in the class.
048a0bd Silence unused warning.
ac32617 Added a stress-tester for LLDB's disassembler. Right now it only works on Mac OS X, but other platforms would just need to add their own implementation of AddLLDBToSysPathOn*().
9f969bc Enable building the POSIX-DYLD dynamic loader plug-in in the Makefile build since it can be used for remote debugging.
0fd911c Revert r154086. It may be needed for Darwin. But the symbols are still missing in the dylib.
a894fe7 Added a new Host class: ReadWriteLock
b730b9d The DynamicLoaderPOSIXDYLD calls aren't available on Apple systems.
5a45f24 Add Security framework to the list of frameworks needed for linking.
74f81ff Tolerate decimal points in the LLDB version number. They are truncated when generating the version numbers seen in the headers, so for example lldb-100.1 would have #define LLDB_VERSION=100
8d61156 Fixed a problem where we did not read properties correctly if the setter/getter were not present in the debug information. The fixes are as follows:
8705876 Order the initializations so that they reflect how they're declared in the class.
3feafab <rdar://problem/11184458>
69c540d Change SBAddress back to using a std::auto_ptr to a lldb_private::Address as the lldb_private::Address has a weak pointer to the section which has a weak pointer back to the module, so it is safe to have just a lldb_private::Address object now.
6eea722 Use LLDB as the default debugger for launcherXPCService.
cfd89c4 Fixed the C++11 #defines that wrap std::weak_ptr to actually use std::weak_ptr.
63aa634 Attempt at fixing a crasher where summary strings where looping endlessly.
7aa754c Fixing a potential crasher where Python would assume we have no thread state while clearing out an SBDebugger which was acquiring input from the interactive interpreter
8ad21a8 Adding a new --python-function (-F) option to breakpoint command add. The option allows the user to specify a Python function name instead of a Python oneliner or interactive script input as a breakpoint command
3d39f83 Added a platform agnostic symbolication python module that can be used by any targets. Then modified the darwin "crashlog.py" to use this agnostic info and the new functionality and classes.
d787da4 Initialize ivars in the correct order.
b20eb3c Possibly too soon for this commit.
63a424f Revert accidental checkin.
ab6e67a Possibly too soon for this change.
d6de950 Use the path to the header file. Use an integer instead of NULL. And get rid of a superfluous 'default' label.
36b6b4c The option is 'NoInlineDefine.'
8c1b382 Use integers instead of NULL.
2e91696 Spell 'DW_TAG_APPLE_property' with the correct capitalization.
c7a4537 Use the correct class/struct keyword so that they match the declarations.
c9fda2d Initialize ivars in the order they are defined in the class.
a9fe7e7 Return 0 for the size_t return type.
ff7df6d Use 0 instead of NULL for the integral value.
e4b3d63 Fixed ClangASTContext to correctly recognize wchar_t as distinct from int.
0cef6ba Add a Test case to make sure that __apple_types section does get produced by dsymutil. This is supposed to succeed even with rdar://problem/11166975.
4eb1453 Add some more debug prints and retrieve the debug subsections from the DWARF section.
35eac9d One last syntax error fix
6805e3f Fixing syntax typos in Python formatters
0be1edd <rdar://problem/11160171>
eb80b40 Remove unused file as this file is deprecated (use ./crashlog.py instead).
9b86085 Removing some instances of str(SBValue)
3be42fb Export the ability to see if a symbol is externally visible and also if the symbol was synthetically added to the symbol table (the symbol was not part of the symbol table itself but came from another section).
a96b789 Add testcase that verifies that __apple_types is a valid section in a .o file generated by clang.
c47ab2c Create a directory to host debug info specific test(s) for darwins.
8f18240 Logging for data formatters.
daaa9d1 Building llvm for multiple arches could cause problems with some archs, tweak the way we update PATH to fix that.
51f1d21 Updating Xcode project version numbers for lldb-137 and debugserver-186
e43333a Updated LLVM to take a comprehensive fix to the JIT that enables paired relocations in the i386 Mach-O JIT. This eliminates crashes in the testsuite when running under i386.
a57f3c6 Making sure the count on synthetic providers is always setup - This should prevent errors about count being undefined from showing up
0cbb93b Patch from Viktor Kutuzov: delete the temporary process we created when "process connect" fails.
86b391b Added the ability to log when things get completed in DWARF. This can be enabled using:
c17d2ed Remove unused code.
101c1c1 Don't log to a temp file and delete it, just use the API that gives us a malloc'ed string array.
f9de192 <rdar://problem/11148044>
972c438 Patch from Viktor Kutuzov: fixes a segmentation fault crash in lldb in the ProcessPOSIX class when the object gets destroyed. I can reproduce this problem on the FreeBSD platform and it should be reproducable for the other platforms also.
3418bfe Disabling blocks support because of rdar://problem/11024417 - This is hopefully just a temporary countermeasure
3ce15b0 Added some logging to STL synthetic children providers - this should help us catch problems; more logging might/will be added as needed
940dd18 Be more careful when overriding the type for a ValueObject, and make sure that ValueObjects that have null type names (because they have null types) also have null qualified type names. This avoids some potential crashes if ValueObject::GetQualifiedTypeName tries to get the name of their type by calling GetClangTypeImpl().
3356d4f <rdar://problem/11082392>
805f79b Fixing a whole class of crashers and potential crashers related to data formatters eating up all the stack when an unknown class has to be summarized ; this should make the whole Objective-C summaries more stable
c84623f Added a "add-dsym" alias to "target symbols add" to keep gdb converts happy.
d4f16c8 <rdar://problem/10103468>
23fdf4b <rdar://problem/11149427>
b6641ba Add log entries for HijackBroadcaster() as well as RestoreBroadcaster().
7e20226 Part 1 of a series of fixes meant to improve reliability and increase ease of bug fixing for data formatter issues. We are introducing a new Logger class on the Python side. This has the same purpose, but is unrelated, to the C++ logging facility The Pythonic logging can be enabled by using the following scripting commands: (lldb) script Logger._lldb_formatters_debug_level = {0,1,2,...} 0 = no logging 1 = do log 2 = flush after logging each line - slower but safer 3 or more = each time a Logger is constructed, log the function that has created it more log levels may be added, each one being more log-active than the previous by default, the log output will come out on your screen, to direct it to a file: (lldb) script Logger._lldb_formatters_debug_filename = 'filename' that will make the output go to the file - set to None to disable the file output and get screen logging back Logging has been enabled for the C++ STL formatters and for Cocoa class NSData - more logging will follow
1ec8f8f Added support for the DW_AT_APPLE_Property tag for unbacked properties. We support two variants: one in which the getter/setter are provided by selector ("mySetter:") and one in which the getter/setter are provided by signature ("-[MyClass mySetter:]").
48f9c71 Missed a file in the last FreeBSD patch.
27cf232 FreeBSD patch that enabled the lldb-platform to be built from Viktor Kutuzov.
1ea7838 Updating Xcode project version numbers for lldb-136 and debugserver-185
05e4d97 <rdar://problem/11052174> <rdar://problem/11051056>
2450cb1 <rdar://problem/11035349>
9cd6c01 When running this from the command line, don't pass the python script file itself to be disassembled.
2a508dd Removed unused variable.
80731ec Fixing an issue where Unicode characters in an NSString were printed as escape sequences by the summary provider shipping with LLDB - Added relevant test case code. Bonus points for identifying the source of the quotes :-)
bd58715 Fixing an issue where saying 'po foo' made both the summary and the description for foo come out. If one is po'ing something they most probably only care about the description - We will not omit the summary
3a253e8 Converted commented out printf statements for dynamic type logging to use the log for "log enabe lldb types".
9af596d Fixed some space formatting.
2fccde4 Updated LLVM and LLDB to fix compilation errors with recent Clang. Clang is now stricter about presence of complete types and about use of the "template" keyword in C++ for template-dependent types.
9d4b6e5 Adding missing file
6781217 adding a summary for Objective-C type 'Class'
f836941 Commented out printf's for the time being.
9ab696e lldb_private::Section objects have a boolean flag that can be set that indicates that the section is thread specific. Any functions the load a module given a slide, will currently ignore any sections that are thread specific.
23d90ae Fixed a few things in the ELF object file: 1 - sections only get a valid VM size if they have SHF_ALLOC in the section flags 2 - symbol names are marked as mangled if they start with "_Z"
dba1de8 Synthetic values are now automatically enabled and active by default. SBValue is set up to always wrap a synthetic value when one is available. A new setting enable-synthetic-value is provided on the target to disable this behavior. There also is a new GetNonSyntheticValue() API call on SBValue to go back from synthetic to non-synthetic. There is no call to go from non-synthetic to synthetic. The test suite has been changed accordingly. Fallout from changes to type searching: an hack has to be played to make it possible to use maps that contain std::string due to the special name replacement operated by clang Fixing a test case that was using libstdcpp instead of libc++ - caught as a consequence of said changes to type searching
dc0a38c <rdar://problem/11113279>
155599b If creation of watchpoint failed on the device, make sure the list maintained by the target reflects that by cleaning it up.
77867c6 <rdar://problem/11022964>
9ff3428 Use GetClangDeclContextForDIE, it'll find the cached one if it's there and we may not have a cached die yet. This fixes a bunch of false positives on "die has no decl".
60c1006 Fix method name for output.
b6cad8c Bump version to debugserver-184, lldb-135.
a3f3819 Small tweak to list of arches to build debugserver for on arm.
074d0ff Explicit casts to remove two compile-time warnings.
d44c9d3 Adding a new API call IsTypeComplete() to SBType. This call is meant to check if the type has been previously completed or not (which is mostly interesting from a performance point of view)
b4a2c82 <rdar://problem/11101372>
0d4453c Fix a typo.
9a725f0 Make arm debugserver handle setting a watchpoint on, for example, (uint64_t)variable. We do this by delegating to two available Watchpoint Register Pairs (wvr, wcr). With each pair handling the 4 bytes of (uint64_t)variable.
b4a8ac1 Bumped Xcode project versions for lldb-134 and debugserver-183.
ee5daf3 Fixed up the command so that it doesn't dump the first arguments when run from the command line which was causing this script to dump the script itself.
fed5267 Added python script that implements a "parse_log_file" command in LLDB which can parse the output from "log enable --timestamp ...." and converts it to be relative to the first timestamp and shows the time deltas between log lines. This can also be used as a stand along script outside of lldb:
74e422d <rdar://problem/11095005>
f5dc0fc SBTypeCategory::GetName returns const char* so return NULL instead of false if no valid name (fixes compiler warning).
685099b Resolved two problems in the disassembler:
cf88842 Previous check-ins allow to hit the arm hardware watchpoint, with a workaound to handle the issue that the inferior cannot execute past the watchpoint-triggering instruction.
f2cb7f2 Removing cascading through inheritance chains for data formatters This is the feature that allowed the user to have things like:
c811f9f Check in main.c modified for testing hardware watchpoints on arm architectures.
2aaf59d Added the ability to log a value object just as a value would be display when using the "frame variable" or "target variable" commands.
b208860 Integrated LLVM revision 153218, which fixes a crash in disassembly of VST instructions.
7d0356f Fixed a bug with the r153228 check-in earlier today in that the cached watchpoint member variables were not reset appropriately.
501e77a Fixed a bug in the disassembler where we did not properly print the load addresses for PC-relative jumps.
34814d6 Since we are having issues with the new LLVM MC disassembler, we can have them both installed with the LLVM MC version being the default. I renamed the name of the LLVM MC disassembler plug-in to "llvm-mc" and the LLVM enhanced disassembly plug-in to "llvm-edis" and they can both be installed for now.
33de038 WIP snapshot of hardware watchpoints for arm. A simple watchpoint has triggered. However, the debugserver cannot get past the instruction which triggered the watchpoint. So a workaround is in place for the time being which disables the triggered watchpoint before resuming.
ce389be Commit missing function prototype.
e401f95 Add missing watchpoint stop info creation logic for arm on the debugger side.
2c2d573 Add "frame info" command to the "Examining Thread State" section, as suggested by Andrew Trick.
30a5dd5 Added some hardening to make sure that we don't use QualType contents unchecked.
ea58028 Added a local patch to reflect an LLVM fix for relocations (LLVM revision 153147). Now when we report section locations in the target process, LLVM will apply both those relocations whose targets are in that section and those relocations which reside in that section and point to other sections.
aa20630 Fixed the ability to load a module from a path by using just a UUID. After the migration to ModuleSpec objects this broke and is now fixed.
ddb5933 Fixed some potential null-pointer bugs in the expression parser code.
f0c372a Headers cleanup
85534d9 More #includes removed
57011ac Removing spurious <locale> include
2b7fd6f Removing spurious <ostream> include
b1db658 Platforms can now auto-select themselves if you specify a full target triple when doing a "target create" command.
f55919b Fixing a bug where child names in filters were not matched properly
b28dae3 <rdar://problem/11078937>
12f588a Make sure that if a UUID was passed in, and we found a match, that should be enough for us.
002945c Added a fix to the crash log script that allows you to locate and load a binary from any location and _then_ do the symbolication. Something like:
1abe4c0 Add a '-E' option to the test driver for the purpose of specifying some extra CFLAGS to pass to the toolchain in order to build the inferior programs to be run/debugged duirng the test suite. The architecture might dictate some special CFLAGS which are more easily specified in a central place (like the command line) instead of inside make rules.
1d56498 Editing documentation to reflect recent changes in the formatters support
cf09f88 Massive enumeration name changes: a number of enums in ValueObject were not following the naming pattern Changes to synthetic children: - the update(self): function can now (optionally) return a value - if it returns boolean value True, ValueObjectSyntheticFilter will not clear its caches across stop-points this should allow better performance for Python-based synthetic children when one can be sure that the child ValueObjects have not changed - making a difference between a synthetic VO and a VO with a synthetic value: now a ValueObjectSyntheticFilter will not return itself as its own synthetic value, but will (correctly) claim to itself be synthetic - cleared up the internal synthetic children architecture to make a more consistent use of pointers and references instead of shared pointers when possible - major cleanup of unnecessary #include, data and functions in ValueObjectSyntheticFilter itself - removed the SyntheticValueType enum and replaced it with a plain boolean (to which it was equivalent in the first place) Some clean ups to the summary generation code Centralized the code that clears out user-visible strings and data in ValueObject More efficient summaries for libc++ containers
2418fdd <rdar://problem/11072382>
35a45ad Include limits.h for PATH_MAX.
72a06db Bump to lldb-133.
b62598b Changed the URL to the CFString summary provider; slightly reworded the relevant piece of content
415bb57 Pointing users to a new example of synthetic children provider en lieu of the old StdVector example which was removed earlier today
7e04238 Adding a new example of synthetic children provider
4c128d5 Updated LLVM/Clang to take a patch that fixes some ARM assembly syntax in LLVM. This allows LLDB to build with the latest Clang.
1dbf2a8 Export the APIs submitted by Dawn to the Python bindings. Add a simple test case for the SBModule.compile_unit_iter() API.
13555cc Fix FRAMEWORK_SEARCH_PATHS for iOS builds.
b451f5f Patch from dawn@burble.org:
e1219bf Fix a bug in getRunOptions() where there was no space between the arch spec and the compiler spec.
63e9d4f Updating Xcode project version numbers for lldb-132 and debugserver-182
7e5bfda Integrated two high-value Clang fixes:
4a4d658 Warn about an example script being obsoleted by new native features and just an example
a95dc6f Deleting obsolete files
48e8dde rdar://problem/11057400
964deba <rdar://problem/8196933>
dbe2c82 Add a test case to go with <rdar://problem/11052829> and svn check-in r152809.
c8dc8db Add test case associated with:
03e498e <rdar://problem/11052829>
3b4d7ff <rdar://11033946>
e947839 Strengthened LLDB's completion of object types. Now when LLDB reports a variable, it has a complete type. Similarly, when it reports members of a struct, it completes their types. Also, when it creates the result variable for an expression, it ensures that variable's type is complete.
39994c6 <rdar://problem/11049371> http://llvm.org/bugs/show_bug.cgi?id=12232
22f44d5 Committing a patch from Filipe Cabecinhas
76fa7cf Remove a debug statement.
f29cd7f Updating Xcode project version numbers for lldb-131 and debugserver-181
9930b33 Makefile build: clang now depends on libclangEdit.
598df88 <rdar://problem/10434005>
d2653c2 <rdar://problem/11042408>
ad6d0f0 bump to lldb-130
599c084 bump to debugserver-180
abd9d7a On iOS builds, install debugserver in /Developer/usr/bin. Also add a copy files phase for -target ios that installs the debugserver launch plists.
9482f05 <rdar://problem/11034170>
579a296 The Cocoa formatters now provide error messages for many of the common things-went-wrong situations. Previously they would say nothing or log failures to the Python console
1ffff0f Send an "OK" response to the "D" (detach) packet.
c9c364f rdar://problem/11031743
cebfad1 Hardened the step-out plan in case it receives bad stack IDs.
b22013e Bumped Xcode project versions for lldb-129 and debugserver-179.
d101111 version bump to lldb-128
f46c5ef version bump to 178
3a245a5 Don't SKIP_INSTALL for sdk==iOS, install in to /usr/local/bin for now.
bc41ff7 Pull in another plist from the old debugserver project. Switch default compiler to clang.
5ae31e2 Mark newly added synthesizer calls as being #ifndef LLDB_DISABLE_PYTHON
7b9aacf Changed several of the Cocoa formatters to match the output style that Xcode uses internally to provide summaries This has been done for those summaries where the difference is only cosmetic (e.g. naming things as items instead of values, ...) The LLDB output style has been preserved when it provides more information (e.g. telling the type as well as the value of an NSNumber)
66205ce Added formatters for libc++ (http://libcxx.llvm.org): std::string has a summary provider std::vector std::list and std::map have both a summary and a synthetic children provider Given the usage of a custom namespace (std::__1::classname) for the implementation of libc++, we keep both libstdcpp and libc++ formatters enabled at the same time since that raises no conflicts and enabled for seamless transition between the two The formatters for libc++ reside in a libcxx category, and are loaded from libcxx.py (to be found in examples/synthetic)
053a922 <rdar://problem/11030692>
ab33808 Disabled the i386 tests pending fixes in the JIT.
8610681 Hardened the process of reading the program counter on behalf of a DWARF expression.
30dad10 Meta classes can't have dynamic types... <rdar://problem/11021925>
9a357a4 ...And finished the job.
fe1e5ec Hardened isObjCObjectPointerType() against NULLs.
52233fa Bump lldb version to lldb-127.
dd21d3c Bump debugserver version to 177.
daf37d2 Re-enable the use of the ARMDisassembler framework when building debugserver for ios. Greg disabled this back in 2012-01-10 r147886 but we still need to use it.
e311766 Fix the process of getting the ObjC runtime - if we ask for it too early (in the process of handling the load notification for the first load) then we will set it the runtime to NULL and won't re-search for it. Added a way for the dynamic loader to force a re-search, since it knows the world has changed.
55f7687 Make debugserver quieter about memory read errors. <rdar://problem/10681220>
fc4dea9 Handle the case where we get called to determine the ObjC runtime version BEFORE the loader code has winnowed all the unloaded libraries from the process module list. <rdar://problem/11015223>
a58d9e7 Fixing a problem with the NSSet summary provider; plus, providing a further optimization to the whole Cocoa formatters infrastructure
7935fce Bumping Xcode project versions for lldb-126 and debugserver-176.
cda01b0 Bumping Xcode project versions for lldb-126 and debugserver-176.
4aa2edf <rdar://problem/11016907>
21c8dcf <rdar://problem/11016922>
16c374d Remove a debug binary from the scheme.
b2cf58a First stage of implementing step by "run to next branch". Doesn't work yet, is turned off. <rdar://problem/10975912>
06cdb8d Changed ValueObject to use a dedicated ChildrenManager class to store its children, instead of an std::vector This solves an issue where a ValueObject was getting a wrong children count (usually, a huge value) and trying to resize the vector of children to fit that many ValueObject*
92693b5 Add the capability on OS X to utilize 'xcrun' to locate the compilers used for building the inferior programs to be debugged while running the test suite. By default, compilers is set to ['clang'] and can be overridden using the "-C compilerA^compilerB" option.
092f71f the formatter for NSNotification was not being initialized correctly
7798d78 Change the test driver so that, by default, it takes into consideration of both 'x86_64' and 'i386' architectures when building the inferior programs.
b8fea86 Bump to lldb-125.
c65046d Fixed a crasher when Xcode calls into ScriptInterpreterPython::ResetOutputFileHandle(). The Locker should only perform acquire/free lock operation, but no enter/leave session at all. Also added sanity checks for items passed to the PyDict_SetItemString() calls.
c227cd9 Bumping Xcode project version for lldb-124 and debugserver-175.
d1978c8 Use a new define, NO_XPC_SERVICES, to indicate that macosx/Host.mm shouldn't compile any of the XPC support code.
ad7bd23 <rdar://problem/11007934>
6e12c7a Updated the revision of LLVM/Clang used by LLDB. This takes two important changes:
66c2e19 Moved inline functions into SBTarget.cpp and made destructors for SBLaunchInfo and SBAttachInfo to avoid link warnings.
e136881 Make sure the byte size is correct when dumping as it may need to be calculated on the fly.
c8b7958 Revert the default debugger to LLDB.
295c7cc <rdar://problem/10993996>
a1dfecf Look up ivar offset symbols correctly. We now treat Objective-C ivar symbols as their own kind of symbol rather than lumping them in with generic "runtime" symbols.
a266491 When comparing a Thread against a ThreadSpec, don't fetch the Thread's Name or QueueName if the ThreadSpec doesn't specify them.
0c31d3d <rdar://problem/10997402>
ac5424c rdar://problem/10998562 lldb crashes under guard malloc
1bc1cad rdar://problem/10611315 expression command doesn't handle xmm or stmm registers...
323cec9 Fixing some of the new Python formatters to report '1 object' instead of '1 objects'
2957584 <rdar://10996650>
400105d Using the new ScriptInterpreterObject in the implementation of synthetic children to enhance type safety Several places in the ScriptInterpreter interface used StringList objects where an std::string would suffice - Fixed Refactoring calls that generated special-purposes functions in the Python interpreter to use helper functions instead of duplicating blobs of code
80e7b0f Fixing an issue where a ValueObject had changed its value but the 'value changed' flag was not being set. This was breaking one of our test cases
a989307 Added the ability to disassembly "count" instructions given a SBAddress. This was done in SBTarget:
69716a2 Added support for calling blocks from expressions, but gated by an #ifdef until we roll LLVM/Clang to bring in the necessary parser support.
647fefd Don't return bare symbols when asked to search inside a namespace. This bypasses local variables.
96ccc33 Fix a little nit with exception breakpoints for C++, the expression parser wants to be more aggressive about trapping exceptions than a user would be. Make it so...
f875f85 Bumping Xcode project versions for lldb-123 and debugserver-174.
95ec168 <rdar://problem/10840355>
fc9867d Add a test case and fix the C++ exception symbols.
0336c61 Bumped project Xcode project version for lldb-122 and debugserver-173.
0e408c4 Fixing a crasher bug where we were not checking for NULL before trying to retrieve the format for a type
bf9ba59 rdar://problem/10267705
4722b10 Add a command and an SB API to create exception breakpoints. Make the break output prettier for Exception breakpoints.
4402f70 <rdar://problem/10986692>
bd61877 Made sure to store the type for "this" when in a C++ method.
fd96c04 Copying a new file required for the updated formatters to work into LLDB.framework
f2a8467 Several performance-oriented changes to the introspecting data formatters: (a) the SystemParameters object is now passed around to the formatters; doing so enables the formatters to reuse computed values for things such as pointer-size and endianness instead of repeatedly computing these on their own (b) replacing the global ISA cache with a per-process one (c) providing a per-process types cache where each formatter can store the types it needs to operate, and be sure to find them the next time without recalculating them this also enables formatters to share types if they agree on a local naming convention (d) lazy fetching of data from Objective-C runtime data structures data is fetched as needed and we stop reading as soon as we determine that an ISA is actually garbage
0164b75 rdar://problem/10976649
c94765e Add two expectedFailure decorators with radar number.
aa142bc Minor cleanup.
3df164e Make it possible to set Exception breakpoints when the target doesn't yet have a process, then fetch the right runtime resolver when the process is made.
b129ac0 Correct wrong values in the test case
af65698 Remove "llvm" from list of things to ignore. This results in the files in source/Plugins/Disassembler/llvm not being handled properly by git.
0467495 Currently TestDataFormatterPythonSynth is failing because of an issue with children capping. Splitting the test case in two so we better isolate the issue and also for better logical separation
c105362 First step to making an LanguageRuntime Exception breakpoint API. <rdar://problem/10196277>
de3b25b added a new formatter for CF(Mutable)BitVector fixed a few potential NULL-pointer derefs in ValueObject we have a way to provide docstrings for properties we add to the SWIG layer - a few of these properties have a docstring already, more will come in future commits added a new bunch of properties to SBData to make it more natural and Python-like to access the data they contain
08b04f2 <rdar://problem/10974749>
5f1b66c Added a function to the disassembler that checks (from the mnemonic) whether an instruction is a branch. This function's result is exposed through DoesBranch().
a912203 Bumped Xcode project versions for lldb-121 and debugserver-172
122bc5e <rdar://problem/10974749>
39ae4cd And remove the control character that somehow found its way into the last checkin...
21d5589 For Sean: handle the case where you are asked for a 0 byte allocation with 0 alignment.
74351ba rdar://problem/10652076
32359b3 Prevent assertions because of zero-sized sections, while still ensuring that the sections get remote allocations.
741c684 Adding a test case for a bug where types CFGregorianDate and CFRange were improperly uniqued by LLDB such that both where shown as having the same structure contents - The bug itself is fixed in TOT but we want to catch regressions ASAP
0e06628 Removing a spurious print statement leftover from debugging the formatter code
b34b0eb Bumping Xcode project versions for lldb-120 and debugserver-171.
9f69f98 Fixed Symbol objects being able to get their byte size.
b962cbc Make sure breakpoint partial name matches occur on namespace boundaries. <rdar://problem/10720345> "break set -n" name matching should only match at namespace boundaries
23255c3 having std::vector still show children even if it now has a builtin summary - having the std::vector test case deal with the fact that we now have said builtin summary
3552ed0 Improved the type's handling of anonymous structs, so that the expression parser can look up members of anonymous structs correctly. This meant creating all the proper IndirectFieldDecls in each Record after it has been completely populated with members.
c86723f <rdar://problem/10967188>
86fcb16 (a) adding formatters for: NSTimeZone and CFTimeZonRef SEL and related types CFGregorianDate
c613a89 <rdar://problem/10967107>
32fb5f7 Bumped Xcode project version for lldb-119 and debugserver-170.
e70aaad Hardcode the identifier and the execution name in debugserver since we put this into a section and not Xcode variable expansion happens.
41ce4f1 Purge a couple more uses of stack count for stepping.
3dcbb23 this fixes unicode strings handling in 32-bit mode on Lion
fe724f7 <rdar://problem/10963899>
83410e5 (a) adding an introspection formatter for NS(Mutable)IndexSet (b) fixes and improvements to the formatters for NSDate and NSString (c) adding an introspection formatter for NSCountedSet (d) making the Objective-C formatters test cases pass on both 64 and 32 bit one of the test cases is marked as expected failure on i386 - support needs to be added to the LLDB core for it to pass
77ce90b Add an option to sort by packet count (rather than time). Also print the count, and to print the total count & time in the header.
303c318 Patch to fix GCC build from Dmitry Vyukov.
42f3af4 Fixed the incorrect LLVM configuration to be "Release".
3069c62 1) solving a bug where, after Jim's fixes to stack frames, synthetic children were not recalculated when necessary, causing them to get out of sync with live data 2) providing an updated list of tagged pointers values for the objc_runtime module - hopefully this one is final 3) changing ValueObject::DumpValueObject to use an Options class instead of providing a bulky list of parameters to pass around this change had been laid out previously, but some clients of DumpValueObject() were still using the old prototype and some arguments were treated in a special way and passed in directly instead of through the Options class 4) providing new GetSummaryAsCString() and GetValueAsCString() calls in ValueObject that are passed a formatter object and a destination string and fill the string by formatting themselves using the formatter argument instead of the default for the current ValueObject 5) removing the option to have formats and summaries stick to a variable for the current stoppoint after some debate, we are going with non-sticky: if you say frame variable --format hex foo, the hex format will only be applied to the current command execution and not stick when redisplaying foo the other option would be full stickiness, which means that foo would be formatted as hex for its whole lifetime we are open to suggestions on what feels "natural" in this regard
ee52747 Changed the default installation paths for lldb for BuildAndIntegration builds.
e021c5b Remove the sanity checks from RegisterContextLLDB::InitializeZerothFrame which require a valid CFA address to create a stack frame. On connecting to just-starting-up hardware we may have a stack pointer/frame pointer of 0 but we should still create a stack frame so other code in lldb can retrieve register values via a stackframe.
6252ea8 If the unwinder fails to make us a frame 0, make one by hand from the SP & PC.
3686423 Added a testcase verifying that forward declarations of Objective-C classes in header files are correctly resolved in the final type.
142f94c Updated LLVM to take a new MC JIT that supports allocations by section. We install these sections in the target process and inform the JIT of their new locations.
441e3b9 Convert the thread plans over from using the stack count to do their logic to using StackID's. This should be more efficient.
a330f97 Fix a typo in comment.
f5c3396 rdar://problem/10652076
a0e9041 Fixing a problem with v1 runtime - plus hopefully finalizing the code to check for tagged pointers
c92468f Use the correct (computed by the unwinder) CallFrameAddress as the CFA for Frame 0 rather than using the stack pointer which is not constant over the life of the frame.
cd33042 Filled in two missing values when dynamically making register info structs.
94b4e9a <rdar://10949461>
93980e7 Fixed the install path for the XPC binaries. Added 3 aggregate targets: "desktop" - build all binaries with XPC "desktop_no_xcp" - build all binaries with none of the XPC binaries "ios" - build all binaries with special iOS install settings.
b96b0df Removed an unused logging API call.
7347ef8 Made the IR interpreter handle GetElementPtr instructions with non-constant indexes.
23297a3 Fix a recursion that could happen when creating the first frame in an unwind because RegisterContextLLDB::InitializeZerothFrame() would create a minimal stack frame to fetch the pc value of the current instruction. This proved fragile when another section of code was trying to create the first stack frame and UnwindLLDB called RegisterContextLLDB which tried to create its minimal stack frame.
f125250 <rdar://problem/10605072>
bf97d74 Make the StackFrameList::GetFrameAtIndex only fetch as many stack frames as needed to get the frame requested. <rdar://problem/10943135>
1328b14 This commit: a) adds a Python summary provider for NSDate b) changes the initialization for ScriptInterpreter so that we are not passing a bulk of Python-specific function pointers around c) provides a new ScriptInterpreterObject class that allows for ref-count safe wrapping of scripting objects on the C++ side d) contains much needed performance improvements: 1) the pointer to the Python function generating a scripted summary is now cached instead of looked up every time 2) redundant memory reads in the Python ObjC runtime wrapper are eliminated 3) summaries now use the m_summary_str in ValueObject to store their data instead of passing around ( == copying) an std::string object e) contains other minor fixes, such as adding descriptive error messages for some cases of summary generation failure
41641f9 Patch from Filipe Cabecinhas!
402607f rdar://problem/10652076
435c5ef <rdar://10950312>
2656987 <rdar://10950196>
1a8e654 Fixed a crasher for remote device debugging.
ed60571 Fix the linux build now that we link against the Linux and FreeBSD platforms.
7ff467b Forgot to check in this file with r151593.
6cdedde Extended the IR interpreter to support symbols that have valid load addresses.
fbb582e Add one more define for sdk==iphoneos.
ce75dce <rdar://problem/10942472>
50b1833 Add more test scenarios for 'memory read': one for a successful command execution and one for another error message.
ab57878 Modify the expected error message accordingly after the recent change to DataExtractor.cpp.
f0ff42a During the test case tearDown(), give it one final blow to make sure the child process spawned by pexpect is terminated. Fix the issue of many '(lldb)' zombie processes observed by Jim.
4dd3d90 <rdar://problem/10017623>
ee2acc4 Fixed an overly-specific testcase that depended on libm being loaded.
493050c Moved byte-size computation out of a startDefinition() ... endDefinition() block, preventing crashes where the byte size of a not-yet-complete type was being computed.
aa11af8 Harden the checks on the type returned from the AST importer because we're seeing occasional crashes.
a605c64 Enabled the PlatformLinux and PlatforFreeBSD on MacOSX so they can be used and also so we don't break them with our code changes.
1fb32d1 Added the POSIX-DYLD as a plug-in in the darwin build in the Xcode project so that we don't break it with code changes.
769908b Include stddef.h for ptrdiff_t, GCC 4.6 doesn't include it implicitly.
b8cfdfc Remove redundant declaration. Patch from Dmitry Vyukov <dvyukov@google.com>!
2b737df Patch from Pawel Worach to make FreeBSD work again after ModuleSpec changes.
444fe99 Made a ModuleSpec class in Module.h which can specify a module using one or more of the local path, platform path, associated symbol file, UUID, arch, object name and object offset. This allows many of the calls that were GetSharedModule to reduce the number of arguments that were used in a call to these functions. It also allows a module to be created with a ModuleSpec which allows many things to be specified prior to any accessors being called on the Module class itself.
1d295e8 Avoid a throw in case we init a lldb_private::Address with an invalid SectionSP.
f96c883 <rdar://problem/9886712>
116a5cd Make the Watchpoint IDs unique per target, not across targets as before. Now Each newly created target has its Watchpoint IDs as 1, 2, 3 ...
f548fc6 Bumped Xcode project version to lldb-117 and debugserver-168.
03dad48 Fix build for case sensitive file systems.
d1040dd <rdar://problem/3535148>
80efa5e Added some missing accessors to the SBAttachInfo for user and group ID getting, setting, and checking.
eccc8c4 Create an additional watchpoint during the test run and verify that the watchpoint fired has the expected watchpoint id.
6c5438b Fixed a crasher that was happening after making ObjectFile objects have a weak reference back to the Module. We were crashing when trying to make a memory object file since it was trying to get the object in the Module constructor before the "Module *" had been put into a shared pointer, and the module was trying to initialize a weak pointer back to it.
8bcb0bd Newly created threads are to inherit from the global debug state of the process.
98ca1e6 Fixed the launching code when using the new SBLaunchInfo.
b389c02 Reworking the ObjC formatters test case not to test everything in one huge code block - better for maintenance and debugging
b2dd15e Fixing an if condition which was causing issues in detecting the correct runtime version
7637a3a Makefiles for new mach-core directory.
92f1c2b Patch from Filipe Cabecinhas fixing a typo in the "lldb unwind" log output.
0a8dcac Added the new way we will eventually do all attaches and launches. First clients will fill out either a SBLaunchInfo or SBAttachInfo class, then call:
3508c38 <rdar://problem/10103468>
e350394 Add a class method HasWatchpointOccurred() to inspect the "method of debug entry" field of the DSCR to check whether it was because of watchpoint occurred.
96da3f3 commenting parts of std::map test case which would make the test case fail when using TOT clang, but succeed on older compiler releases
aa12be4 Updated LLVM to take some fixes that make the Intel disassembler usable.
edfdbe0 Add comments about address word offset and the calculation of byte address select mask for WCR.
e859697 fixing a syntax error with objc_runtime.py
c510fa1 This patch provides a set of formatters for most of the commonly used Cocoa classes. The formatter for NSString is an improved version of the one previously shipped as an example, the others are new in design and implementation. A more robust and OO-compliant Objective-C runtime wrapper is provided for runtime versions 1 and 2 on 32 and 64 bit. The formatters are contained in a category named "AppKit", which is not enabled at startup.
b370df2 This patch provides a set of formatters for most of the commonly used Cocoa classes. The formatter for NSString is an improved version of the one previously shipped as an example, the others are new in design and implementation. A more robust and OO-compliant Objective-C runtime wrapper is provided for runtime versions 1 and 2 on 32 and 64 bit. The formatters are contained in a category named "AppKit", which is not enabled at startup.
8f84cfb This patch provides a set of formatters for most of the commonly used Cocoa classes. The formatter for NSString is an improved version of the one previously shipped as an example, the others are new in design and implementation. A more robust and OO-compliant Objective-C runtime wrapper is provided for runtime versions 1 and 2 on 32 and 64 bit. The formatters are contained in a category named "AppKit", which is not enabled at startup.
d819489 Bumping version to lldb-116.
a4a1587 Make a nested if .. if .. else block nesting more explicit with some curly braces.
6ebf9da typemaps to allow Python to invoke the new SBModule::GetVersion() API. Memory management is taken care of automatically so that Python users can simply say my_list = my_module.GetVersion() and receive a new list with the version numbers, if any, inside.
78fa6c9 Made the hidden-ivar test a little more rigorous.
931acec Added support for looking up the complete type for Objective-C classes. This allows LLDB to find ivars declared in class extensions in modules other than where the debugger is currently stopped (we already supported this when the debugger was stopped in the same module as the definition).
9a7e4c3 Add @expectedFailure decorator with radar number.
d846521 Make Debugger::SetLoggingCallback public, and expose it through the SB API. Sometimes it is not convenient to provide a log callback right when the debugger is created.
988be08 Added support for the DWARF 4 DW_FORM values.
e628a9f Remove extra semicolon (breaking g++ builds).
21356b7 Revert the RTTI change from r151187. It make lldb compile with g++ 4.4 but it doesn't link anymore. The bug seems to be fixed in g++ 4.5.
068d25b Makefile build: remove warning flag that's not supported by GCC.
49f4bf2 Added the ability to get a ObjectFile versions from the ObjectFile subclasses if the object files support version numbering. Exposed this through SBModule for upcoming data formatter version checking stuff.
ddbc8e8 Enable RTTI for the Makefile build, hopefully getting the linux build a bit further.
9792d5c Minor modification.
04720ae Updated our main LLDB page as it was vastly out of date.
63fd41c Remove unused python includes from headers.
7611330 For stepping performance I added the ability to outlaw all memory accesseses to the __PAGEZERO segment on darwin. The dynamic loader now correctly doesn't slide __PAGEZERO and it also registers it as an invalid region of memory. This allows us to not make any memory requests from the local or remote debug session for any addresses in this region. Stepping performance can improve when uninitialized local variables that point to locations in __PAGEZERO are attempted to be read from memory as we won't even make the memory read or write request.
9a5bbd2 Change #ifdef markers around lockdown and SpringBoard calls to dpeend on WITH_SPRINGBOARD and WITH_LOCKDOWN instead of __arm__. Add an RNBSocket::useFD method.
6572b71 Use a sentry object to properly initialize/terminate LLDB.
fe29729 Install lldb tool into /usr/local/bin if sdk==iphoneos.
ae1d3eb Fix comment.
1844426 Revert accidental commit.
e5eaa30 Linux fix patch from Dmitry Vyukov.
137e523 Remove a ton of implicit narrowing conversions for C++11 compatibility.
2d9c2d4 Forgot to add two files from the last checkin.
3383c17 Fixed an issue where empty sections or zero filled sections could return incorrect values and also fire an assertion.
c48ca82 Patch Enrico's changes from r150558 on 2012-02-14 to build even if Python is not available (LLDB_DISABLE_PYTHON is defined).
b6883ec Fixed a crasher that would happen when supplying lldb with an application bundle that didn't contain an executable.
6c530f2 Add a logging mode that takes a callback and flush'es to that callback. Also add SB API's to set this callback, and to enable the log channels.
5de3317 Pull side effects out of asserts. Fixes debugserver with NDEBUG defined.
f4124de Thread hardening part 3. Now lldb_private::Thread objects have std::weak_ptr objects for the backlink to the lldb_private::Process. The issues we were running into before was someone was holding onto a shared pointer to a lldb_private::Thread for too long, and the lldb_private::Process parent object would get destroyed and the lldb_private::Thread had a "Process &m_process" member which would just treat whatever memory that used to be a Process as a valid Process. This was mostly happening for lldb_private::StackFrame objects that had a member like "Thread &m_thread". So this completes the internal strong/weak changes.
4eeac7e committing a patch from Dmitry Vyukov that solves compilation issues with FormatNavigator.h
8e1d33f fixing documentation to refer to the correct name of the module init function __lldb_init_module
dd5e363 Fix compile error for DisassemblerLLVMC.cpp. Patch by Dmitry Vyukov <dvyukov@google.com>.
8ebed65 Fix examples/lookup/main.cpp.
289afcb The second part in thread hardening the internals of LLDB where we make the lldb_private::StackFrame objects hold onto a weak pointer to the thread object. The lldb_private::StackFrame objects the the most volatile objects we have as when we are doing single stepping, frames can often get lost or thrown away, only to be re-created as another object that still refers to the same frame. We have another bug tracking that. But we need to be able to have frames no longer be able to get the thread when they are not part of a thread anymore, and this is the first step (this fix makes that possible but doesn't implement it yet).
70c6cf4 Ignore the constness of the object pointer when fetching it.
891d8ba making it so that the std::map test case does a better job at checking for interference between expression parser and synthetic children; plus being more verbose in the comments
751a8ac Remove unneeded includes.
b4d7fc0 This checking is part one of trying to add some threading safety to our internals. The first part of this is to use a new class:
4b091e4 reverting unwanted changes to scheme files with previous commit
d760907c Adding formatters for several useful Objective-C/Cocoa data types. The new categories are not enabled at startup, but can be manually activated if desired. Adding new API calls to SBValue to be able to retrieve the associated formatters Some refactoring to FormatNavigator::Get() in order to shrink its size down to more manageable terms (a future, massive, refactoring effort will still be needed) Test cases added for the above
75a7c75 Fixed an error with the 'G' packet on ARM when using the default GDB register set where it could get an error when trying to restore the fake "f0" - "f7" 12 byte float regs.
32a56ec Added a new disassembler plugin, DisassemblerLLVMC, which uses the Disassembler.h interface to the LLVM disassemblers rather than the EnhancedDisassembly.h interface. Disassembler.h is a better-maintained API and will be stabler in the long term.
758835b memory read -f X doesn't print anything (lldb should warn when encountering an unsupported byte size) Also add a test sequence for it.
5564d80 memory read prints out duplicate entries when using vector formats DataExtractor::Dump() needs to supply the correct cursor when delegating to the child DataExtractor::Dump() calls. Add a regression test file.
5a15e69 Add a general mechanism to wait on the debugger for Broadcasters of a given class/event bit set. Use this to allow the lldb Driver to emit notifications for breakpoint modifications. <rdar://problem/10619974>
e90903a Document that we now support the GDB shorthand format syntax on any commands that take formats or sizes.
51cd6f6 Stop finding bare symbols when we're explicitly told to look in a namespace.
046ef69 adding a new test case for the SB formatters API
16376ed <rdar://problem/10062621> New public API for handling formatters: creating, deleting, modifying categories, and formatters, and managing type/formatter association. This provides SB classes for each of the main object types involved in providing formatter support: SBTypeCategory SBTypeFilter SBTypeFormat SBTypeSummary SBTypeSynthetic plus, an SBTypeNameSpecifier class that is used on the public API layer to abstract the notion that formatters can be applied to plain type-names as well as to regular expressions For naming consistency, this patch also renames a lot of formatters-related classes. Plus, the changes in how flags are handled that started with summaries is now extended to other classes as well. A new enum (lldb::eTypeOption) is meant to support this on the public side. The patch also adds several new calls to the formatter infrastructure that are used to implement by-index accessing and several other design changes required to accommodate the new API layer. An architectural change is introduced in that backing objects for formatters now become writable. On the public API layer, CoW is implemented to prevent unwanted propagation of changes. Lastly, there are some modifications in how the "default" category is constructed and managed in relation to other categories.
52d0d02 Previoously the expression parser had to rely on the JIT when printing the values of registers (e.g., "expr $pc"). Now the expression parser can do this in the IR interpreter without running code in the inferior process.
04200f6 Only allow expressions to use the JIT if memory can be allocated in the process.
2b05e29 Remove the functionality of using 'frame variable -w' to set a watchpoint now that 'watchpoint set variable/expression' is working. Also update the relevant test cases.
9658054 Remove @expectedFailure decorators as the bug has been fixed.
132e7c3 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150492 91177308-0d34-0410-b5e6-96231b3b80d8
7abba2a Add test cases exercising SBValue.GetObjectDescription() with the SBValue from SBTarget.FindGlobalVariables() as well as from SBFrame.GetVariables(). Both scenarios are expected to work.
8da5489 Fixed a bug that caused the description strings for assembly instructions to occasionally come out empty.
95d7433 Made loading sections in the DynamicLoaderDarwinKernel more robust as it seems that sections in the memory module might be quite different from the sections in the file module. Now we find all segments in the on disk file and find that segment by name in the memory module and it is ok if any sections from the file are missing in the memory image.
e7e2099 Add a test case for completion from 'settings set target.exec' to 'settings set target.exec-search-paths '.
9ce9538 Full core file support has been added for mach-o core files.
f4cbc32 Tightened up type uniq'ing so we don't uniq two anonymous types to each other unless they have the same byte_size.
f73b0fd Bump version number up to 115.
9ad1953 Made the "--no-inlines" option on "target modules lookup" also work with the "--function" option, so you can search for functions that aren't inlined. This is the same query that the expression parser makes, so it's good for diagnosing situations where the expression parser doesn't find a function you think should be there.
d7793d2 Make the output from "target modules lookup -n" prettier.
302d78c Extended function lookup to allow the user to indicate whether inline functions are desired. This allows the expression parser, for instance, to filter out inlined functions when looking for functions it can call.
ac725af Improved detection of object file types, moving detection of kernels into the object file and adding a new category for raw binary images. Fixed all clients who previously searched for sections manually, making them use the object file's facilities instead.
37b4166 Fixed incorrect #include directives.
dd1dcfd Fixed a bunch of ownership problems with the expression parser. Specifically:
fbe7783 fixing a macro name mismatch that was making our test case succeed for the wrong reason; plus a minor code change to the CPP side of the test which eases debugging efforts
caffddc Caching the DIE for the DeclContext as reported by GetClangDeclContextContainingDIE, for better debuggability.
45eabea Fix compile time warnings for the inferior program.
e7a8e46 Added a logging helper class for SymbolFileDWARF::ParseType() that will enable us to track the depth of parsing and what is being parsed. This helps when trying to track down difficult type parsing issues and is only enabled in non-production builds.
c8fb5e8 Setting terminal type to 'xterm' on Darwin; otherwise, to 'vt100'.
8c1af79 Add error handling for missing option terminator "--" and a test scenario for it. Also fix a logic error for a missing return stmt. Oops.
46c9a35 First pass at mach-o core file support is in. It currently works for x86_64 user space programs. The core file support is implemented by making a process plug-in that will dress up the threads and stack frames by using the core file memory.
e170182 And the .zip file.
39a3034 Brought LLVM/Clang up to top of tree. The only change (besides logging) is that now string literals in the IR are ConstantDataArrays instead of ConstantArrays.
3750e2a Removed another debug message. Sigh...
7be5d35 Add safe guard for when the 'expect' program cannot be located and skip the test.
5f4f327 Some Breakpoint:: methods crept down be log the Breakpoint::BreakpointEventData methods.
f9fa91b Set the terminal type to 'xterm' before doing 'stty -a'.
9d4e86e Remembered to NULL out the symbol, which was causing testsuite crashes.
b82faf7 Make the expect_prompt more strict.
8f82f82 Add a case to test that 'stty -a' displays the same output before and after running the lldb command.
42404d2 After discussions with Jim and Greg, modify the 'watchpoint set' command to become a mutiword command with subcommand 'expression' and 'variable'. The first subcommand is for supplying an expression to be evaluated into an address to watch for, while the second is for watching a variable.
b2e8d19 Added support to the expression parser for reading variables that are only available in symbols.
7e7f6b9 fixing comment to reflect that currentversion of OSX works with our STL formatters
e7ba112 In the absence of a valid process, the expression parser now at least tries to generate IR for the target.
24da246 Version bump to 113.
28e2386 Send Breakpoint Changed events for all the relevant changes to breakpoints. Also, provide and use accessors for the thread options on breakpoints so we can control sending the appropriate events.
75ed99e Fixed ClangExpressionDeclMap to use the debug information about the current frame rather than the debug information about "this" and "self" when determining the types of those pointers. This allows expressions to work in frames that don't have valid "this" and "self" pointers, working around poor debug information.
f86c60f Clarify the 'frame variable' help message regarding the watchpoint functionality.
73ac3b5 Update comment.
8eac77d The IRInterpreter's constant evaluator wasn't sufficiently general - it could only handle literals and operations that didn't change the data. Now the constant evaluator passes APInt values around, and can handle GetElementPtr constants.
6183fcc Refine the 'watchpoint set' command to now require either the '-v' option (for watching of a variable) or the '-e' option (for watching of an address) to be present.
df871b0 Added a .gitignore so that "git status" isn't quite as busy.
361c0f8 Made SymbolFileDWARF be less strict when looking for types that can be uniqued to the given type. This is especially helpful when types are missing file and line information.
cb1a0d9 Add help string for 'frame variable' to link to 'watchpoint set' which allows for using an expression to specify the address to watch for.
97b675e I left some stray debugging messages in the source code. Removing these.
5e3e8c1 Special build dictionary needs the same dictionary when specifying the after-the-test cleanup.
d4d4e09 Fix a typo in specifying the error path when launching the inferior.
8adc2dd Print out the frame only if self.TraceOn() is True.
e745f4d Add regular C++ inheritance in addition to the virtual inheritance to TestCppValueCast.py. Plus mark the virtual inheritance test cases as expected failures.
b7fad95 Almost have templatized functions working (templatized classes are already working, but not functions). I need to check on a few things to make sure I am registering everything correctly in the right order and in the right contexts.
7dd5c51 Removed all of the "#ifndef SWIG" from the SB header files since we are using interface (.i) files for each class.
2e4ea18 Made a fix that would affect anything in the anonymous namespace when looking for types and comparing decl context matches.
eac62c0 Added some extra comments for the declaration context comparison function in the DWARF plug-in.
b5a8f14 <rdar://problem/10560053>
8f2e392 I have brought LLDB up-to-date with top of tree LLVM/Clang. This brings in several fixes, including:
39f54ea Allow a SBAddress to be created from a SBSection and an offset.
0a19a1b Convert all python objects in our API to use overload the __str__ method instead of the __repr__. __repr__ is a function that should return an expression that can be used to recreate an python object and we were using it to just return a human readable string.
71d249d Add test cases for SBValue.Cast(SBType). The test logic needs more polishing.
9013829 Fix typos.
2ef5eae Add test cases for APIs to get template arguments from an SBType.
6bbfa6c Fixing issues where synthetic children providers for STL containers std::list and std::map where not doing their job properly
d62b9c1 Expose more convenience functionality in the python classes.
4e6640e Fixed casting in the lldb::SBValue::Cast(SBType) function.
b6a5ba6 Cleaned up the documentation strings for many helper objects and added lldb.SBModule.section and lldb.SBModule.sections property access.
bad9753 Adding support for an "equivalents map". This can be useful when compilers emit multiple, different names for the same actual type. In such scenarios, one of the type names can actually be found during a type lookup, while the others are just aliases. This can cause issues when trying to work with these aliased names and being unable to resolve them to an actual type (e.g. getting an SBType for the aliased name). Currently, no code is using this feature, since we can hopefully rely on the new template support in SBType to get the same stuff done, but the support is there just in case it turns out to be useful for some future need.
3eeaf6e Added support to SBType for getting template arguments from a SBType:
4ab0c03 Add a couple of simple completion test cases for 'target ' and 'target va'.
2f2c277 Added a new --omit-names (-O, uppercase letter o) option to "type summary add". When used in conjunction with --inline-children, this option will cause the names of the values to be omitted from the output. This can be beneficial in cases such as vFloat, where it will compact the representation from ([0]=1,[1]=2,[2]=3,[3]=4) to (1, 2, 3, 4). Added a test case to check that the new option works correctly. Also took some time to revisit SummaryFormat and related classes and tweak them for added readability and maintainability. Finally, added a new class name to which the std::string summary should be applied.
3c49d4c Should have used the convenience function:
6c49bf4 For processes which are not in one of the "launched and stopped" state, 'target variable' command should use Target::ReadMemory() call to read from the file section offset address. Also remove the @expectedFailure decorator..
7cd8cd5 Fixed terminal settings not being properly restored when "quit" was run. This affected bash users.
a749ca2 Kill our child process that we launch when we can't get the task_for_pid() otherwise we will have a launched process stopped at the entry point and it will get reparented when debugserver goes away and we won't be able to kill the process later.
efa4e22 Fixed a build breakage when trying to assign a shared pointer using a raw pointer.
b62d4c6 ensure that changes to the typemaps are properly detected and cause SWIG to rebuild LLDBWrapPython.cpp
b88575e Fixed an issue where we might accept the wrong type when completing a type when we have a forward declaration. We always have found a type by basename, but now we also compare the decl context of the die we are trying to complete with the matches we find from the accelerator tables to ensure we get the right one.
1ea5802 When outputting hex values use unsigned integer values so we don't get negative hex values. Also added a very rudimentary version of the == and != operators to the lldb.value helper class.
02b6bef Fix indentation.
ca4fe80 Add const-ness to BreakpointLocation::IsEnabled().
cfbfcd2 Add @expectedFailure decorators.
b302dff Added many more python convenience accessors:
394da8e Added a new convenience property on lldb.SBThread names "frames" which always returns a complete list of all lldb.SBFrame objects:
cbf1591 lldb should warn when dSYM does not match the binary.
9b8ff51 Added a new class to the lldb python module:
e20090b remove spurious leftover code from std::list testcase
86ad476 Added fuzz testing for when we call API calls with an invalid object. We previously weren't catching that SBValue::Cast(...) would crash if we had an invalid (empty) SBValue object.
149d1f5 Threads now store their "temporary" resume state, so we know whether they were suspended in the most recent step, and if they weren't allowed to run, don't ask questions about their state unless explicitly requested to do so.
f4a3922 Test case for std::map synthetic children provider (currently an expected failure)
7541b1b Test case for std::list synthetic children provider (currently an expected failure)
168e115 Test case for std::vector synthetic children provider
e1df07f Splitting test case for Python synthetic children: part 1 test is only testing the synthetic children feature itself. More test cases will be commited for individual STL containers
4691fc5 Comments edited to better reflect what the function really does
b8dc733 This commit provides a new default summary for Objective-C boolean variables, which shows YES or NO instead of the character value. A new category named objc is added to contain this summary provider. Any future Objective-C related formatters would probably fit here
db9d6f4 Cleaned up the Communication class when it tears down ConnectionFileDescriptor instances to not pthread_cancel the read threads and wreak havoc on the mutex in our ConnectionFileDescriptor class.
4eb01a7 <rdar://problem/10776614>
448b6d6 quick fixes for two issues that were causing LLDB to crash
28f3771 Add some more test cases for the "watchpoint set" command.
6346a29 Add a period.
0f907b8 Add a '-u ENV_VAR_NAME' option to the test driver, whose purpose is to unset the said environment variable before starting the test runner which executes the test cases and may spawn child processes. An example:
bc2bb1e Trivial indentation change.
bda984a Fixed a typo in the test case. Updated comment.
fd60a60 Reverted 149277 changeset. It was coded that way for a reason.
55a2d5a Add "watch set" command as a more general interface in conjunction with "frame var -w". Also add test cases for watching a variable as well as a location expressed as an expression.
fb0026b Make BreakpointLocation::IsEnabled() consistent with the BreakpointLocation::SetEnabled() implementation.
573d85c Added a new lldb.SBValue helper module that has two classes:
0416bdf 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.
334d33a 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:
90c5214 Removed the "lldb-forward-rtti.h" header file as it was designed to contain all RTTI types, and since we don't use RTTI anymore since clang and llvm don't we don't really need this header file. All shared pointer definitions have been moved into "lldb-forward.h".
13d24fb Switching back to using std::tr1::shared_ptr. We originally switched away due to RTTI worries since llvm and clang don't use RTTI, but I was able to switch back with no issues as far as I can tell. Once the RTTI issue wasn't an issue, we were looking for a way to properly track weak pointers to objects to solve some of the threading issues we have been running into which naturally led us back to std::tr1::weak_ptr. We also wanted the ability to make a shared pointer from just a pointer, which is also easily solved using the std::tr1::enable_shared_from_this class.
9b4197b Removed an incorrectly added property from SBTarget.i
1b92520 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.
894aaba Fix shell commands that do code signing.
c962cd9 Bumping Xcode project versions for lldb-109 and debugserver-167.
a792abe Added logging so we can see the field names and offsets of any structures for when we enable the assisted layout.
2fecc45 Stop running so many individual commands when going into the script interpreter. All of the commands now get globbed into a single line.
98b9895 Xcode codesigning is broken. Work around this by doing code signing in a shell script build phase.
3fc0c4f Adding the DWARF parser side for assited layout where the AST context will ask ExternalASTSource objects to help laying out a type. This is needed because the DWARF typically doesn't contain alignement or packing attribute values, and we need to be able to match up types that the compiler uses in expressions.
d13a4df Add an InstanceSettings::NotifyOwnerIsShuttingDown() method so that the owner can notify InstanceSettings instances that their owner reference is no longer valid.
8a79708 Disable the ConnectionFileDescriptor mutex for now as it is deadlocking our test suite and I need to investigate this.
3a4a75c Fix typo.
fd8ef2e Emit the message about putting ' -- ' between the end of command options and the raw input conditionally, that is, only if the command object does not want completion. An example is the "settings set" command.
08205a6 Added a ModuleList::Destroy() method which will reclaim the std::vector memory by doing a swap.
b17bf82 NULL out the "ptr_" member of shared pointers for debug and release builds (not build and integration builds) to help catch when a shared pointer that might be in a collection class is used after the collection has been freed.
1503c0f Enable extra error checking for debug builds in our mutexes by watching for errors from pthread_mutex_destroy () (usually "Resource busy" errors for when you have a mutex locked and try to destroy it), and pthread_mutex_lock, and pthread_mutex_unlock (usually for trying to lock an invalid mutex that might have possible already been freed).
f75e391 There is no need to hold onto an ExecutionContext as a member variable. ExecutionContext objects have shared pointers to Target, Process, Thread and Frame objects and they can end up being held onto for too long.
06c6b25 Fixed a location where we would never end up unlocking our mutex in the ClusterManager. Also switched to using Mutex::Locker where we can.
c149c8b Fixed an issue that could happen during global object destruction in our map that tracks all live Module classes. We must leak our mutex for our collection class as it might be destroyed in an order we can't control.
aa119dd <rdar://problem/10760649>
177bc68 <rdar://problem/10750012>
ccf4450 Fixed formats being able to be applied recursively when using: target variable -f <format> [args] frame variable -f <format> [args] expression -f <format> -- expr
261c974 Added some clarifications about when the __lldb_init_module would be called and showed a work around for when this won't.
47fdb0f Added a 'gdbremote' python module that adds two commands: start_gdb_log and end_gdb_log. When this is imported into your lldb using the "command script import /path/to/gdbremote.py" these new commands are available within LLDB. 'start_gdb_log' will enable logging with timestamps for GDB remote packets, and 'stop_gdb_log' will then dump the details and also a lot of packet timing data. This allows us to accurately track what packets are taking up the most time when debugging (when using the ProcessGDBRemote debugging plug-in).
f3edcc0 Fix page title.
f8c0fc5 For Dump(Stream *s), use GetOptionsNoCreate()->GetIgnoreCount() and fix the indentation.
736f0d6 Typo.
4272164 If timestamps are enabled when logging GDB remote packets ("log enable -T -f /tmp/packets.log gdb-remote logs") then get the amount of time spent executing each packet and summarize at the end of a dump. Sample timing output looks like:
758442a Move argument checking/manipulation into the front of the function.
61d44fa Clearify some comment.
39fb5c2 Cleanup docstring and remove dead code.
5f4a538 Handle 's' packets correctly when disassembling GDB packet output.
42b7ff9 Add some more test cases for command completion:
0c5c43b Fix a typo in the error message of the StopInfoWatchpoint class.
ddf110d Added a mechanism for the IR interpreter to return an error along with its boolean result. The expression parser reports this error if the interpreter fails and the expression could not be run in the target.
27276f7 Better name for the Python Scripting.
4b59b49 Better name for the python reference.
062a836 Proof-reading the python docs.
4fda467 Modify redo.py script so that if sessin_dir is left unspecified, it uses the heuristic to find the possible session directories with names starting with %Y-%m-%d- (for example, 2012-01-23-) and employs the one with the latest timestamp. For example:
1c2d941 Minor comment change. Plus use member function instead of directly accessing member field.
51b7c5f Tiny refactoring to use member functions instead of directly accessing member fields.
f872775 Followup check in for http://llvm.org/viewvc/llvm-project?rev=148491&view=rev, where we changed the CommandObjectSettingsSet object impl to require raw command string.
ad635c8 Dump the raw bytes and the disassembled instruction before calling self.assertTrue() instead of after, in case the assert fails for any reason.
f9ab5ea Added a python FAQ page with detailed examples of how to add python functions to breakpoints, creating new LLDB commands using python modules and also how to run scripts from the command line.
2c1fdd0 Added options to specify how many instructions before and after the frame PC to disassemble. Users can also specify the frame depth to disassemble to and also if disassembly should happen for all threads.
223e808 Use the "shlex" module to parse the command line that was passed down into python so that single and double quotes and other standard shell like argument parsing happens as expected before passing stuff along to option parsing.
838c27d <rdar://problem/10711649>
64f8cab Our Read functions were taking a timeout of UINT32_MAX to mean wait forever, but then we didn't implement that in setting the socket option. <rdar://problem/10711649>
c8bba45 Followup check in for http://llvm.org/viewvc/llvm-project?rev=148491&view=rev, where we changed the CommandObjectSettingsSet object impl to require raw command string.
9a8e584 Bumped Xcode project versions for lldb-108 and debugserver-166.
a3698c6 Fixed it so the "--help" option works for the crashlog command. Corrected and filled out the command help and removed unused options.
47397c7 Add comment.
5b6e565 A little bit of cleanup to make the code more understandable.
45c8714 This file is no longer needed since the command:
182be6a <rdar://problem/10732738>
fbcad68 o CommandObjectSettingsSet.cpp:
f7fb733 Fixed a global reference that should have been a reference to a class variable.
e9ee550 Make the script work again from the command line as long as the PYTHONPATH environment variable it set to include a path to lldb.py.
cd79312 More fixed to verify if a file in the crash log is installed in the current system and also deal with dsymForUUID being available on the network, locally, and not at all.
8077a53 Improved the regular expressions to handle "+" characters being at the front of the identifier name in the binary images section. Improved the regular expression for the frames.
01f7c96 Modified the symbolicate-crash.py so it can be imported into python as a module (you can't import a module with a '-' in it) and also added a Symbolcate(...) top level function so it can be imported and used as an LLDB command.
8f83b75 Add some usage documentation to the top of the source file.
824da9b Added a new tool that can be loaded into a user space darwin application and allows you to find data on the heap. To use this, make the project and then when stopped in your lldb debug session:
8042eed Add comment describing the interaction of WantsRawCommandString()/WantsCompletion() with the completion mechanism.
ebad95d Made IsArrayOfScalarType handle typedefs correctly.
adc6c38 Integrated a patch for the MCJIT that inhibits a memory leak.
120d94d rdar://problem/10724187
7f86483 ValueObjectRegister type value objects should obey the format in ValueAsCString. <rdar://problem/10719481>
a1b0ce1 rdar://problem/10712130
39c42c5 Fixed a problem where Objective-C classes that were originally imported from symbols for the expression parser didn't get their superclasses set properly.
666c553 Allow a way to track all allocations for our intrusive ref counted pointers. It is disabled by default, but can be enabled to track down shared pointer cycles.
662e567 Fixed an issue with the Instruction subclasses where the strings might be fetched too many times and the DisassemblerLLVM was appending to strings when the opcode, mnemonic and comment accessors were called multiple times and if any of the strings were empty.
e0028b8 Fixed a problem where maintaining the ObjCInterfaceMap for each ObjCInterfaceDecl was imposing performance penalties for Objective-C apps. Instead, we now use the normal function query mechanisms, which use the relevant accelerator tables.
c1cd379 Fix to ensure that methods aren't called on NULL objects.
e14d3d3 Added an extra way to chop up an objective C prototype and use it where necessary.
445c086 Be sure to use the one and only trusted source for chopping up objective C class names when extracting the class name, selector and name without category for objective C full class and instance method names.
c43e7b8 Fixed an issue in the debugger format strings that include "${function.name-with-args}" where we grabbed the variable list size from the wrong list (we needed it from "args" and we were getting it from "variable_list_sp").
b46346b Add comment regarding TestHelloWorld.py's use of a dictionary to specify/overwrite the EXE name.
5034a14 Modify the test cases so that each uses a unique executable name for the debugger to attach/launch. I've see cases where there are lingering processes ("hello_world") staying around and the test_with_dsym_and_attach_to_process_with_name_api() test case just hangs.
cc63936 Fixed an issue where we might not find the one true ObjC definition. Now we do things much smarter by extracting search results more efficiently and by properly obeying the must_be_implementation bool in the SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE() function.
781452a Add a test case where 'settings set frame-format' supplies a format string containing, among other things, a single backtick character.
8e16745 Bump version number past lldb-107.
e9eae81 Add a '-X excluded-dir' option to the test driver to exclude a directory from consideration during test discovery. For example:
3cab941 Fix the test properly now that SBValue::GetValueAsUnsigned works for bitfields.
ce9cf4e Add usage example of specifying the full path to the compiler used while building the debuggees for running the test suite.
a2a9f79 Add usage example from test/functionalities/archives/Makefile.
ad639b6 More improvements to not follow child processes and improved logging that always shows the process info.
70bc536 Bumped xcode project versions for lldb-106 and debugserver-165
bba4836 <rdar://problem/9731573>
a58a788 I forgot to import a header file change. This should fix builds.
06a3058 Added some fixes for the fd interposing dylib: - don't strip too many frames from the backtrace when logging close backtraces - cleanup some logging messages
2fc9b6f <rdar://problem/10684141>
a981a64 I made two major improvements to the way the master AST importer imports types.
4e4805b Only create new ASTImporters on demand, not proactively.
d0d7372 If the name of a struct or union is NULL in the debug info, call it anonymous. This isn't perfect, because Clang actually considers the following struct not to be anonymous: – struct { int x; int y; } g_foo; - but DWARF doesn't make the distinction.
6e22e8b Fixed some logging in the AST source and added more information.
688082e Updated HTML with info for ${function.name-with-args}
f9971c4 Added a new thread and frame format that can be used to display a function name + arguments when the data is available. It seems to work really well, but some more testing is needed before we make this on by default.
f771915 Bumped Xcode project version for lldb-105 and debugserver-164.
3d7b6fb <rdar://problem/10688864>
a44297a Don't set breakpoints independently comp unit by comp unit, but look over all the file & line matches and only pick the "best" ones. <rdar://problem/10685990>
5d235d5 Add some description for this test directory.
f70160e rdar://problem/10684459 test_move_and_then_display_source (TestSourceManager.py) never works in LLDB test suite
111e18b Modify a couple of Makefiles to use clang instead of gcc, since gcc is being deprecated.
62f0b37 rdar://problem/10680957 Need a test case that tests DWARF with .o in .a files
f03d97e Discriminate between the lldb_private::Type's for ObjC Classes that come from debug info, and those that are made up from the ObjC runtime symbols. For now the latter contain nothing but the fact that the name describes an ObjC class, and so are not useful for things like dynamic types.
9175f66 Fix a comment typo.
a334c9d Let the Module FindType do the stripping of namespace components, that's not expensive and doing it both at the ModuleList and Module levels means we look 4 times for a negative search. Also, don't do the search for the stripped name if that is the same as the original one.
ef8fef6 Bumped Xcode project versions for lldb-104 and debugserver-163.
db2dc2b Big change in the way ObjectFile file contents are managed. We now mmap() the entire object file contents into memory with MAP_PRIVATE. We do this because object file contents can change on us and currently this helps alleviate this situation. It also make the code for accessing object file data much easier to manage and we don't end up opening the file, reading some data and closing the file over and over.
e6b976d <rdar://problem/10681814>
281700b Don't dereference the oso_dwarf without checking for NULL.
33a89b2 Revert some changes I did for logging that affected the ability to load .o files in BSD archive parsing.
7c20b0a rdar://problem/10492827 SBProcess.GetSTDERR() not getting stderr of the launched process
740b3b7 After thinking about it, it doesn't seem right to make assumptions if the type is unsized. We just give up (and let the JIT handle it) instead.
1c6b461 Don't assert but report & return a NULL type if we end up parsing a type we are in the middle of parsing.
26697b8 Add more usage examples.
7129913 Fixed a missing space when reporting errors and warning through the module and also print out the full path and architecture.
157fd95 Add usage examples of recently added functionality.
883fdbe If the size of a type can't be determined, default to assume it's of pointer size.
305f385 Snapshot of initial work for ARM watchpoint support on the debugserver. It is incomplete and untested; passes the compilation only.
c21e523 Add comment for build_and_run_with_source_atoms_expr() and remove redundant #include from basic_type.cpp.
649383a Add documentation for the generic functions build_and_run() and build_and_run_expr() called from the Test*Types*.py test cases.
6c7559a Disable ARMDisassembler.framework support which was used for software single stepping.
ca28cc3 Check the return value of GetBasicInfo before dereferencing it. <rdar://problem/10568492>
48f1bfe Updating Xcode project version numbers for lldb-103 and debugserver-162
66a16ee As we are grubbing through memory chasing down the hierarchy of an ObjC object, protect against the possibility that that object might be just random memory with loops.
b01327f Since clang modifies .o files in place, use MAP_PRIVATE as it seems to fix the issues we run into on darwin even though the docs don't seems to say it will.
0b862e4 Fix for linux build.
55cbdad Don't call lldb_private::Process::GetLoadAddressPermissions to sanity check the unwind addresses when you already know that the address is contained in a bona fide function. This can be a slow call.
8563081 Refactor the test/types directory to reduce some stupid reduant code. Also add test cases to the test suite to exercise displaying of variables captured inside a block (Darwin-only).
1af0a74 Fix make errors (define the DYLIB_ONLY make variable).
159c7cc Add a CFLAGS_EXTRAS make variable to be able to pass things (like '-DTEST_BLOCK_CAPTURED_VARS') to the compile phase.
cb5ad0b Added a file descriptor interposing library for darwin. This can catch all functions that can create file descriptors and close them. It will warn when there close file descriptor call that returns with EBADF and show the corresponding stack backtraces that caused the issue. It will also log all file descriptor create and delete calls. See the comments at the top of FDInterposing.cpp for all of the details.
00b11c3 When doing a "target modules lookup --address <addr>", show the file address in the module when dumping the information in addition to all info that we were previously showing.
fcf74f1 Update makefile rules to support C++ files in shared libraries and fix how the linker driver is found.
8c5c296 Make a log timer for the BSD archive creation so we can track the time it takes to open and index BSD archives.
97f3a27 Updating Xcode project version numbers for lldb-102 and debugserver-161
22834be Fixed a return value problem with the new ABI::FixCodeAddress () function:
99323d8 Fix comment.
fc984a0 <rdar://problem/10645694>
43f280c <rdar://problem/10660369>
ae4ca1b Recursive calls to ValueObject::GetSummaryAsCString() are causing crashes. The previous approach to controlling the recursion was doing it from outside the function which is not reliable. Now it is being done inside the function. This might not solve all of the crashes that we were seeing since there are other functions that clear the bit that indicates that the summary is in the process of being generated, but it might solve some.
4e86fc4 <rdar://problem/10658091>
a6b7e32 Patch from Enrico Granata that moves SBData related functions into the SBData class instead of requiring a live process in order to be able to create useful SBData objects.
6fc5c71 Fixed a bug where the DWARF location expression parser was creating malformed resuls. When the location of a variable is computed by reading a register and adding an offset, we shouldn't say that the variable's value is located in that register. This was confusing the expression parser when trying to read a variable captured by a block.
4b23ab3 <rdar://problem/10652336>
a1cec24 <rdar://problem/10649734>
9f074f0 http://llvm.org/bugs/show_bug.cgi?id=11619 Allow creating SBData values from arrays or primitives in Python
b42c2ad <rdar://problem/10647191>
c613496 http://llvm.org/bugs/show_bug.cgi?id=11618 lldb::SBValue::AddressOf does not work on dereferenced registers in synthetic children provider
c80dca7 We finalized on the new .apple_types accelerator table format where we don't emit fully qualified names, so now we make sure the DW_TAG values match and still lookup using the basename.
cc152b2 http://llvm.org/bugs/show_bug.cgi?id=11715 comma at end of enumerator list
a41bf81 Fix indentation.
0821a65 Add back the file I wrongly deleted in r147613.
aa9d267 Fixed a problem in our local Clang's method for performing Objective-C instance variable lookup. Previously, it only completed the derived class that was the beginning of the search. Now, as it walks up the superclass chain looking for the ivar, it completes each superclass in turn.
2341d35 Fix incomplete commit of http://llvm.org/viewvc/llvm-project?rev=147609&view=rev:
7e99647 This patch combines common code from Linux and FreeBSD into a new POSIX platform. It also contains fixes for 64bit FreeBSD.
429c6d8 Bumped Xcode project versions for lldb-101 and debugserver-160.
df6dc88 Added code in the Host layer that can report system log messages so that we don't have "fprintf (stderr, ...)" calls sprinkled everywhere. Changed all needed locations over to using this.
faf0478 Fixed a potential hang while trying to execute a function in the inferior.
94113c4 Add comment explaining the default constructor (ArchSpec) used in CreateTarget().
9ac3d8b Fixed a dangling pointer bug associated with the result variable on a "finish" statement. The ownership of the result value was not being properly assigned to the newly-created persistent result variable; now it is.
2f28ece <rdar://problem/10507811>
4237e1e Added logging to track when the IR interpreter resolves values in registers.
caf4da9 Added examples of commands that list and delete breakpoints.
9798d7b Fixed the help text for raw commands like "expr" to include -- in sample command lines. Now LLDB prints
ccdaf23 Instead of blindly printing a string when eFormatCString is specified, I have made DataExtractor::Dump properly escape the string. This prevents LLDB from printing characters that confuse terminals.
0fea051 <rdar://problem/10368163>
5985732 <rdar://problem/10551280>
e10ddb0 <rdar://problem/10568905>
1716ad7 <rdar://problem/10546739>
d2909b4 Centralize the code the reads the CFI so that we always log.
2757c34 Cleaned up the usage to show the BuildAndIntegration configuration.
d3850ab Save a little bit of memory that was being reserved in a UniqueCStringMap vector that can be sized to fit.
ae00d56 Sanity check the data I am going to read from the extractor to avoid asserting.
a4b43ab rdar://problem/10216227 LLDB (python bindings) Crashing in lldb::SBDebugger::DeleteTarget(lldb::SBTarget&)
43504ce Added a bunch more structure return tests.
8806edb Fixed a thinko when returning a struct like {short a; short b; short c; float d}.
f09ca66 Updating Xcode project version numbers for lldb-100 and debugserver-159
1c17a7e Added checking to prevent a rare crash when getting the name for an external variable in the IR.
869e296 Decorate the two test cases in TestReturnValue.py as i386 only expectedFailure, aka @expectedFailurei386.
ec95492 Indentation.
68687f5 Patches for running some of the Linux tests from Dawn, thanks! With some minor modification from me.
016ef88 Improve the x86_64 return value decoder to handle most structure returns. Switch from GetReturnValue, which was hardly ever used, to GetReturnValueObject which is much more convenient. Return the "return value object" as a persistent variable if requested.
b399653 Add check for non-NULL Variable with a NULL Type.
b6f9ee7 Made IRForTarget error out correctly when it can't complete the result type, preventing crashes later.
daa6efe The "desired result type" code in the expression parser has hitherto been an implementation waiting for a use. I have now tied the '-o' option for the expression command -- which indicates that the result is an Objective-C object and needs to be printed -- to the ExpressionParser, which communicates the desired type to Clang.
982373d I accidentally committed some changes to the Xcode workspace that aren't actually desirable. Reverted.
15bb3cf Fix wrong test method name.
993d33e Updating Xcode project version numbers for lldb-99 and debugserver-158
fb0e328 Bump version number past lldb-98.
506cba9 Tightened Clang against a bug in which RecordDecls with incomplete definition data were being converted. Now Clang attempts to complete RecordDecls before converting them, avoiding a nasty crash.
a75feaf Fixed a bug in the ASTImporter that affects types that have been imported multiple times.
693f400 Updating Xcode project version numbers for lldb-97 and debugserver-157
46052eb Properly name the test class as well as the test methods.
04bb583 Properly name the test class as well as the test methods.
9fd2e38 Work in progress for:
5a4bbce Work in progress for:
71eae57 Remove dead code found.
8eb4f1e Add fuzz call to SBStringList.AppendString(None). LLDB should not crash.
4278bbe Work in progress for:
dccbc4b Minor format update (no semantic change).
3424871 Add test_frame_api_boundary_condition() test case to exercise a bunch of boundary condition inputs.
287e28b Add a test sequence which passes None to lldb.SBFileSpec(). LLDB should not crash.
5feb642 Tes passing None to SetErrorString() and SetErrorStringWithFormat().
b6ca2e1 Work in progress for:
c8918e5 Add a fuzz call for SBCommunication: obj.connect(None).
c82670a Work in progress for:
bab8cc9 Work in progress for:
e0bd571 Add needed Clear methods. <rdar://problem/10596340>
87b8c4c Work in progress for:
0f71d19 Added some strength to the checks that prevent "id" from being found by the parser as an externally-defined type. Before, "id" would sometimes make it through if it was defined in a namespace, but this sometimes caused confusion, for example when it conflicted with std::locale::id.
65f4fb0 Fix Python docstring for SBThread.GetStopDescription().
bcbefa8 Fixed code rot pointed out by Jim. SBThread::GetStopReasonDataCount/GetStopReasonDataAtIndex() need to handle eStopReasonWatchpoint.
93a82e3 Added a version of the LLVM/Clang checkout and build script that applies any local patches to LLVM/Clang.
6aeedd3 Updating Xcode project version numbers for LLDB-96 and debugserver-156.
1586d97 Add the ability to capture the return value in a thread's stop info, and print it as part of the thread format output. Currently this is only done for the ThreadPlanStepOut. Add a convenience API ABI::GetReturnValueObject. Change the ValueObject::EvaluationPoint to BE an ExecutionContextScope, rather than trying to hand out one of its subsidiary object's pointers. That way this will always be good.
74b25a0 Modified LLDB to be able to handle our updated __apple_types accelerator tables which have the dwarf DIE tag (DW_TAG_XXX enum) and TypeFlags for each type.
ef1fd12 I have added a new patch to LLVM that makes the enhanced disassembler classify disassemblers by target triple (as a string) rather than just by the architecture component of the triple. This fixes a problem where different variants of the Thumb instruction set were lumped into the same hash bucket.
1910d2b Remove an unnecessary #include.
4bdca6f Make the objc-dynamic-value test a little trickier (still passes) and test the GetDynamicValue API.
dfafa14 http://llvm.org/bugs/show_bug.cgi?id=11588 valobj.AddressOf() returns None when an address is expected in a SyntheticChildrenProvider
0539a80 Updated Clang to take an enhancement to the way we handle Objective-C method calls. Currently, LLDB treats the result of an Objective-C method as unknown if the type information doesn't have the method's signature. Now Clang can cast the result to id if it isn't explicitly cast.
a5fd176 Handle all of the "thumb" target triple architecture variants that llvm handles.
df19270 When we're unwinding out of frame 0 and we end up with a bogus frame 1 -- an address pointing off into non-executable memory -- don't abort the unwind. We'll use the ABI's default UnwindPlan to try to get out of frame 1 and on many platforms with a standard frame chain stack layout we can get back on track and get a valid frame 2. This preserves the lldb behavior to-date; the change last week to require the memory region to be executable broke it.
9633cc6 Simplify the setup leading to the testing of ReadMemory(), ReadCStringFromMemory(), and ReadUnsignedFromMemory(). Instead of getting the location of the variable and converting the hex string to an int, just use val.AddressOf().GetValueAsUnsigned() to compute the address of the memory region to read from.
1d8b089 Remove unnecessary #include.
126fcc3 Add a test sequence of SBProcess.ReadCStringFromMemory() with (char *)my_char_ptr as the address to read from.
115213c Fix a bug where when debugging with .o files, we end up with two symbols for each real OBJC_CLASS_$_whatever, one of which is correctly classified as an ObjCClass symbol, and the other is just a data symbol. This was messing up the ObjC dynamic type detection. <rdar://problem/10589527>
6f6dd0a Add test scenario for newly added SBProcess APIs: ReadCStringFromMemory() and ReadUnsignedFromMemory().
607d2ed Add fuzz call for newly added method SBTarget.GetInstructions().
0841386 Add fuzz calls for newly added SBProcess methods. Fix a typo in the audodoc of SBProcess.ReadCStringFromMemory().
c2e97f3 Move disassemble-raw-data dir to reside under test/python_api where they belong. Add debug statements for the raw bytes and the disassembled instruction.
cb0f245 Bumped Xcode project version to lldb-95 and debugserver-155.
c548687 <rdar://problem/10584789>
4a2e337 Expose new read memory fucntion through python in SBProcess:
943485c http://llvm.org/bugs/show_bug.cgi?id=11579 lldb::SBValue::CreateValueFromAddress does not verify SBType::GetPointerType succeeds
ef1f690 I have added a function to SBTarget that allows clients to disassemble a series of raw bytes as demonstrated by a new testcase.
a0d06cd Add more robustness - use PyString_CheckExact(pvalue) to check whether pvalue is a Python string before calling PyString_AsString(pvalue). Similar to http://llvm.org/viewvc/llvm-project?rev=146584&view=rev.
2fcf412 http://llvm.org/bugs/show_bug.cgi?id=11569 LLDBSwigPythonCallCommand crashes when a command script returns an object
8498517 On Mac OS X the Objective-C runtime (libobjc) has many critical dispatch functions that are implemented in hand-written assembly. There is also hand-written eh_frame instructions for unwinding from these functions.
cd186e5 http://llvm.org/bugs/show_bug.cgi?id=11560 lldb::SBTarget::FindFirstType crashes when passed None
b91423b Print out the breakpoint description only if self.TraceOn() is True.
21f2e19 This commit is the result of a general audit of the expression parser to locate instances where dyn_cast<>() and isa<>() are used on types, and replace them with getAs<>() as appropriate.
9a1f001 Add two new memory region based checks to the Unwinder:
1f9c39c When unwinding from the first frame, try to ask the remote debugserver if this is a mapped/executable region of memory. If it isn't, we've jumped through a bad pointer and we know how to unwind the stack correctly based on the ABI.
1cb04d7 Try to add a svn:ignore property to ignore the testsuite run directories. I'm not sure I have this right but it looks correct.
e367aa8 Use forward declarations more of the time to save on things that we need to parse.
33bc865 Add a pthreads testcase to make sure the two-step of running and expression, having the block, then timing out & letting all threads run actually works.
5ed59a7 I have modified the part of the code that finds and validates the "self," "this," and "_cmd" pointers that get passed into expressions. It used to check them aggressively for validity before allowing the expression to run as an object method; now, this functionality is gated by a bool and off by default.
9f97e62 Fixed the Xcode project to correctly not strip anything for Debug and Release builds. Modified the Xcode project to not strip liblldb-core.a for BuildAndIntegration builds and to correctly strip only debug symbols from the command line binaries.
d0f67e2 Rename some test methods, with no functionality change.
d538f13 Commenting out the two @expectedFailureClang decorators as the tests have been passing for a while with the recent clang compilers.
931449e rdar://problem/10227672
bcb0adc Use forward types where possible to avoid having to parse extra DWARF when it is not required.
1308a95 Always return a valid answer for qMemoryRegionInfo if the packet is supported. We will return a valid range when possible and omit the "permissions" key when the memory is not readable, writeable or executeable. This will help us know the difference between an error back from this packet and unsupported, from just "this address isn't in a valid region".
c5d14e6 <rdar://problem/9958446> <rdar://problem/10561406>
c6e328a Move some print stmts to the test method, where they get printed only if the test is qualified to run under the current test driver run configuration.
1c22627 Fixed a problem where if a frame was present the expression parser would never try getting typed variables from the target.
f48de6d Two fixes for file variables:
d7fc5b8 <rdar://problem/10559329>
7c53768 Don't try to cache the ExecutionContextScope in the ValueObject::EvaluationPoint, it is too hard to ensure it doesn't get invalidated out from under us. Instead look it up from the ThreadID and StackID when asked for it. <rdar://problem/10554409>
da81dae Fixed a problem with properties where LLDB was not creating appropriate setter/getter methods for property definitions.
d906b1b Don't spam warnings about not being able to read memory at 0x0.
b5c023a Tested a theory on the where when we lookup things in the accelerator tables that if we prefer the current compile unit, followed by any compile units that already had their DIEs parsed, followed by the rest of the matches, that we might save some memory. This turned out not to help much. The code is commented out, but I want to check it in so I don't lose the code in case it could help later.
9d3c618 Move the ARM specific arch picker from PlatformRemoteiOS.cpp to PlatformDarwin.cpp -- call it from both PlatformRemoteiOS.cpp and the native process PlatformDarwin.cpp when running on an arm system.
982a6ca Rework how the breakpoint conditions & callbacks are handled. We now iterate over all the locations at the site that got hit, and first check the condition, and if that location's condition says we should stop, then we run the callback. In the end if any location's condition and callback say we should stop, then we stop.
9a530a6 We now have a test case for stopping within a module in a place where the translation unit has a interface for a class "Bar" that contains hidden ivars in the implementation and we make sure we can see these hidden ivars. We also test the case where we stop in translation unit that contains the implementation first. So the test runs two tests:
b2027ec If the expression parser is unable to complete a TagDecl in the context in which it was originally found, the expression parser now goes hunting for it in all modules (in the appropriate namespace, if applicable). This means that forward-declared types that exist in another shared library will now be resolved correctly.
a9091cc Move CPUHasAVX() prototype out of an #ifdef block of code.
1b42575 Add SBValue::GetDynamicValue and SBValue::GetStaticValue API's. <rdar://problem/10545069>
4fdf795 Added the ability to dereference an Objective-C object pointer to make the result of an expression. LLDB now dumps the ivars of the Objective-C object and all of its parents. This just required fixing a bug where we didn't distinguish between Objective-C object pointers and regular C-style pointers.
d2cb132 libEnhancedDisassembly.a is gone from recent LLVM.
d7088cf Fixed an issue where we are asking to get the decl context for a function that is in a class from the expression parser, and it was causing an assertion. There is now a function that will correctly resolve a type even if it is in a class.
f4933ed <rdar://problem/10544202>
514970a Get the bit-field offset & size for ObjC ivars that are bitfields. <rdar://problem/10535460> lldb expression evaluation doesn't handle bit fields in ObjC classes properly
434b7dd Tightened up the variable list to deal with variables that might not have valid names.
37bb8dd Added a new class called lldb_private::SymbolFileType which is designed to take a SymbolFile reference and a lldb::user_id_t and be used in objects which represent things in debug symbols that have types where we don't need to know the true type yet, such as in lldb_private::Variable objects. This allows us to defer resolving the type until something is used. More specifically this allows us to get 1000 local variables from the current function, and if the user types "frame variable argc", we end up _only_ resolving the type for "argc" and not for the 999 other local variables. We can expand the use of this as needed in the future.
e2c8a07 Removed function information from the symbol table for now to fix testcases. Once we have a valid use for the function information (i.e., once properties returning UnknownAnyTy are allowed, once we read return type information from the runtime, among other uses) I will re-enable this.
1f5c0c3 Expose the DNBArchMachARM::DBG typedef, specify the type with the class scoping in DumpDBGState()'s definiton.
2e87f6a Don't crash due to not checking log shared pointer.
3d8540a Fixed a few details of method lookup in Objective-C symbols. Now we find the correct method.
e31493a Fix <title> on webpage.
cb2c77e Fixed a potential crasher if the frame is not avalable when a global variable is looked up. In ClangExpressionDeclMap, a frame should usually be available.
9f5c614 Fix assert string to be more informative.
64b4f19 Modified the script to have the flexibility of specifying the gdb executable path for use in the benchmark against lldb's disassembly speed. Note that the lldb executable path can already be specified using the LLDB_EXEC env variable.
5b27612 Use the shorter form of the LLDB framework binary path.
46b27f2 Add a typedef for arm_debug_state_t as DBG. Plus some minor comment changes.
0670900 <rdar://problem/10487848>
2c0d16c Skip over lldb-93.
e1301a6 As part of the work to make Objective-C type information from symbols more accessible, I have added a second map to the ClangASTImporter: the ObjCInterfaceMetaMap. This map keeps track of all type definitions found for a particular Objective-C interface, allowing the ClangASTSource to refer to all possible sources when looking for method definitions.
009a430 Set a flag on the AST type dump to see Objective-C methods. The Clang dump is now much more verbose, but when somebody types "target modules lookup -t" that is typically what they're looking for.
31ad9cc Correct typo in method name (AddSymbolFileRepresendation...)
3cbf848 Sanity check the inputs to SBCommandInterpreter::HandleCompletion
f8e0461 Because we now call StartTagDeclarationDefinition() and CompleteTagDeclarationDefinition() on Objective-C interfaces populated by SymbolFileSymtab::FindTypes(), we should mark the interface as forward-declared when we create it.
84278fd Bumped Xcode project version for lldb-92.
249f4c4 Fixed the remaining test suite failures after the recent objective C cleanup and fixes we did. Now that objective C classes are represented by symbols with their own type, there were a few more places in the objective C code that needed to be fixed when searching for dynamic types.
16d2187 Added the ability for clients to grab a set of symbol table indexes and then add them to a fast lookup map. lldb_private::Symtab now export the following public typedefs:
7791722 Added code to make sure we don't recursively try to find an objective C class. The thing with Objective C classes is the debug info might have a definition that isn't just a forward decl, but it is incomplete. So we need to look and see if we can find the complete definition and avoid recursing a lot due to the fact that our accelerator tables will have many versions of the type, but only one complete one. We might not also have the complete type and we need to deal with this correctly.
d0b7cfa Testcase fixes with the new symbol lookup code for Objective-C, making symbol lookups for various raw Objective-C symbols work correctly. The IR interpreter makes these lookups because Clang has emitted raw symbol references for ivars and classes.
de32b45 Added a code for a test to find the real Objective C class definition. I still need to write the test case file.
2fc7e8d Added ClangExternalASTSourceCommon, a local superclass for all our external AST sources that lets us associate arbitrary flags with the types we put into the AST contexts. Also added an API on ClangASTContext that allows access to these flags given only an ASTContext and a type.
038f1c0 Remove accidental "else" that was left in in prior checking.
3f69eac Added new symbol types for Objective C classes, metaclasses, and ivars. Each object file can correctly make these symbols which will abstract us from the file format and ABI and we can then ask for the objective C class symbol for a class and find out which object file it was defined in.
ad382c5 Make the ThreadPlanStepThrough set a backstop breakpoint on the return address from the function it is being asked to step through, so that even if we get the trampoline target wrong (for instance) we will still not lose control.
bae39c5 Fixed some extra warnings that show up with the new clang.
a32dc70 <rdar://problem/10522194>
dfa0cdb Let's also record the compiler version used for compiling the inferior into the session info
dd6698d <rdar://problem/10410131>
99e2c55 Modified the Objective-C type map in SymbolFileSymtab to use ConstStrings. The const char*s were assumed to be from ConstStrings before, but since storing a full-on ConstString is no more expensive than storing a const char* it makes better sense to enforce uniqueness with the type checker.
eac5b9b Added support for extracting method information from Objective-C symbols. The methods aren't used yet if there is a competing definition in the DWARF; I will resolve that next.
d5b0b44 After moving lldb::pid_t to 64 bits, keep a deprecated version around for previous binaries that link against this for a few builds to make sure we can continue to run against previous binaries.
4b9cf3d <rdar://problem/10394517>
5935525 "f" should be an alias for "frame select" not "finish" to match the gdb usage.
d9919d3 Process IDs (lldb::pid_t) and thread IDs (lldb::tid_t) are now 64 bit. This will allow us to represent a process/thread ID using a pointer for the OS plug-ins where they might want to represent the process or thread ID using the address of the process or thread structure.
dc5fce1 Modified clients of ClangASTImporter to be more robust in the face of failures to import types, since blithely passing on NULL types can sometimes lead to trouble.
60526c4 Protect a few log->Printf calls with "if (log)"...
0523083 Picked up a new revision of Clang to pull in Objective-C enhancements. With these enhancements, the return values of Objective-C methods with unknown return types can be implicitly cast to id for the purpose of making method calls.
c6c3756 <rdar://problem/10507811>
84ac509 Bumping Xcode project version for lldb-91.
8521b84 If we are going to assert due to an unhanded opcode, stuff the opcode value into the CrashReporter string first.
21ef5bb Made symbol lookup in the expression parser more robust:
fa21ffd rdar://problem/10501020
dc303c2 Bumped Xcode project versions for lldb-90 and debugserver-154
673f3db Added support to the Objective-C language runtime to find Objective-C class types by looking in the symbol tables for the individual object files.
02dfe4a Add processing of '-help' option.
e957039 Make sure that we print out function or symbol information. If we disassembled a symbol, were weren't showing the "<module>`<symbol>" header.
6c7c390 I broke the test suite (4 failures) with r145459 check-in. Fix the breakage by properly setting the result status before returning.
d2a1143 Turn off the resolver detection till we find a better method to do so.
d37ffd9 Add a work around to deal with incorrect forward class definitions in objective C DWARF emitted by clang.
dd54979 rdar://problem/9211445
9fc1692 Remove possible cut-and-paste code which doesn't belong.
f332c53 <rdar://problem/10500242>
ed5a4b1 Added #ifdef wrappers around the contents of ASTDumper.h.
89e7df3 Modified ClangExpressionDeclMap to use existing ValueObjects when creating variables referring to live data rather than constructing ValueObjectConstResults.
26e089b Missing return in error handling for "source list".
d8ff835 Typo in error string.
48a202d Patch from Dawn that fixes up linux debugging and a first passs at an implementation of the linux platform.
da44411 Add bench entries.
1d1f39e <rdar://problem/10429064>
9a181f4 I added more complete documentation on all of the new packets we use in LLDB as well as attached a new priority description as to why and when you would want to implement each packet.
c23d842 Patch from Daniel Dunbar for future-proof against http://llvm.org/viewvc/llvm-project?view=rev&revision=145331.
a3d0447 Changed ClangASTImporter to allow finer-grained management of what allocations remain after an expression finishes executing. This saves around 2.5KiB per expression for simple expressions.
8e276bd Added some documentation on the new GDB remote packets we have added and use in LLDB.
23038b6 SBProcess.PutSTDIN() needs to be properly typemapped when swigging, so that we can do Python scripting like this:
609b9ce Clarify the SBProcess Python API GetSTDOUT()/GetSTDERR(). They look different from the C++ API due to swig typemapping.
da52c49 <rdar://problem/10413589>
0e6df36 Fixed an issue where we might cause our test suite to exit if we end up concatenating a string with "None" in python. Using a python format string gets us around this by handling it gracefully.
df2ac38 Now the linux platform lets it be known that it can't launch processes for debugging.
75d8c25 CommandObjectProcess was recently changed to automatically use the platform to launch a process for debugging. Since this isn't supported on all platforms, we need to do what we used to do if this isn't supported. I added:
48f4798 Fixed an issue in the DWARFLocationList::Dump() function where default arguments were quietly masked as the code changed (modified version of a path from Dawn).
ce04560 Remove incorrect return type from SetHeaderDataByteSize accessor (partial patch from Dawn).
c5b3f50 Shrink-to-fit our std::vector<DWARFDebugInfoEntry> collections and save 20% to 30% of memory. The size doubling was killing us and we ended up with up to just under 50% of empty capacity. Cleaning this up saves us a ton of memory.
2eb5122 Got the sizeof(lldb_private::Symbol) down to 64 bytes (from 72 bytes) by not having the enumeration take up 32 bits for the type and by putting it into the bitfields that were already being used.
0c496cd 12% allocated memory savings when debugging clang with DWARF in .o files by making sure we perfectly size our vector of symbols on the symbol table.
31feaa8 <rdar://problem/10033754>
3e6f2cc Save the arguments for a process launch in the target.run-args so they can easily be used in the next run.
be9875d Many GDB users always want to display disassembly when they stop by using something like "display/4i $pc" (or something like this). With LLDB we already were showing 3 lines of source before and 3 lines of source after the current source line when showing a stop context. We now improve this by allowing the user to control the number of lines with the new "stop-line-count-before" and "stop-line-count-after" settings. Also, there is a new setting for how many disassembly lines to show: "stop-disassembly-count". This will control how many source lines are shown when there is no source or when we have no source line info.
8391530 Update ProcessMonitor::MonitorCallback signature.
0a66c05 Update PlatformLinux::Attach signature.
fecc09c Pulled in a new revision of LLVM/Clang and added several patches. These patches fix a problem where templated types were not being completed the first time they were used, and fix a variety of minor issues I discovered while fixing that problem.
489575c Further performance improvements in the DWARF parser: 1 - the DIE collections no longer have the NULL tags which saves up to 25% of the memory on typical C++ code 2 - faster parsing by not having to run the SetDIERelations() function anymore it is done when parsing the DWARF very efficiently.
d9b7985 Ensure that the empty RecordDecl generated for templates is properly complete (though still empty).
323ce42 Handle stepping through a trampoline where the jump target is calculated a runtime - and so doesn't match the name of the PLT entry. This solution assumes a naming convention agreed upon by us and the system folks, and isn't general. The general solution requires actually finding & calling the resolver function if it hasn't been called yet. That's more tricky.
a938553 Added optional calls to lldb_private::Process for getting memory region info from a process and hooked it up to the new packet that was recently added to our GDB remote executable named debugserver. Now Process has the following new calls:
0963fdd Looking at our memory usage with Instruments when debugging a large application we say that the vectors of DWARFDebugInfoEntry objects were the highest on the the list.
5a55c7a This commit completes the rearchitecting of ClangASTSource to allow variables in the persistent variable store to know how to complete themselves from debug information. That fixes a variety of bugs during dematerialization of expression results and also makes persistent variable and result variables ($foo, $4, ...) more useful.
4c6a752 Redirect the stderr output into a file so as to not pollute the terminal.
1941fda Do not print debug messages if self.TraceON() is False.
0896719 Add a simple progress bar when neither '-v' nor '-t' is specified.
464c616 Use a pseudoterminal for local processes if no STDIO redirection or other file actions have been specified.
028d8eb Add an option '-S' to skip the build and cleanup while running the test. Use this option with care as you would need to build the inferior(s) by hand and build the executable(s) with the correct name(s). This option can be used with '-# n' to stress test certain test cases for n number of times.
c518fe7 Now that I fixed the uninitialized callback problem, I can enable GCD pid monitoring on darwin in the host layer.
6cfd267 Rename test class appropriately.
1628317 Bumped Xcode project versions for lldb-89 and debugserver-153.
ffa43a6 Fixed the issue that was causing our monitor process threads to crash, it turned out to be unitialized data in the ProcessLaunchInfo default constructor. Turning on MallocScribble in the environment helped track this down.
2020608 Fixed an issue with the pthread_setspecific() where we weren't NULL-ing out the thread specific data and were destroying the thread specfic data more than once.
2618380 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144874 91177308-0d34-0410-b5e6-96231b3b80d8
22ca65d Docstring clarification.
30b30cb Also dump the pid of the process launching through the lldbtest.system(*popenargs, **kwargs) API. This helps track down possible zombie processes.
595553a Added support to the ASTImporter for passing completion information between different AST contexts. It works like this:
d01bf88 Changed the ClangASTImporter to store metadata for each AST context it knows about in a single object. This makes it faster to look up the appropriate ASTImpoter for a given ASTContext pair and also makes it much easier to delete all metadata for a given AST context.
cf3c7bd Added a CopyType method to the ASTImporter that handles opaque QualTypes.
1da1f2e Remove invalid docstring (due to cut-and-paste error).
4938bd6 I made the ClangASTImporter owned by the target rather than individually on behalf of each ASTContext. This allows the ASTImporter to know about all containers of types, which will let it be smarter about forwarding information about type origins. That means that the following sequence of steps will be possible (after a few more changes):
1c4642c Made the darwin host layer properly reap any child processes that it spawns. After recent changes we weren't reaping child processes resulting in many zombie processes.
e0b7f94 Fixed a problem where the target didn't use a NULL-terminated C string to store the contents of the expression prefix file. This meant that expressions, when printing the contents of the prefix into the expression's text, would invariably put in bad data after the end of the expression.
1608954 Fixed a crash when we merrily went on to try to log information about a nonexistent function declaration.
7befa30 Two fixes for Objetive-C methods that return struct types. First, I added handling for the memset intrinsic in the IR, which is used to zero out the returned struct. Second, I fixed the object-checking instrumentation to objc_msgSend_stret, and generally tightened up how the object-checking functions get inserted.
ab881d8 While we are at it, verify that 'my_int_ptr' points to 'g_my_int', using the SBTarget.ResolveLoadAddress() to get its SBAddress, and SBAddress.GetSymbol() to get the corresponding symbol.
e15cf29 Fix objc runtime warnings from the inferior program.
dcf03f8 Made Target own a ClangASTSource that will be used to complete types in the scratch AST context.
d3812fa Eliminated a compile warning by removing dyn_cast where isa is good enough.
e9cd03a Removed the ClangASTImporter pointer from ClangExpressionDeclMap, which actually uses the one it inherits from ClangASTSource.
f24f1cd Add test scenario for value.GetChildAtIndex(0) where value is a pointer to a simple type.
a54e439 File renaming.
c41606f Fixed a bug where the variable-resolution code would occasionally try to resolve the placeholder variable used for static data allocation.
934fc6b Bumped Xcode project version for lldb-88 and debugserver-152.
527154d Added a new class to Process.h: ProcessAttachInfo. This class contains enough info for us to attach by pid, or by name and will also allow us to eventually do a lot more powerful attaches. If you look at the options for the "platform process list" command, there are many options which we should be able to specify. This will allow us to do things like "attach to a process named 'tcsh' that has a parent process ID of 123", or "attach to a process named 'x' which has an effective user ID of 345".
e6ea5fe Pulled in a new version of LLVM/Clang to solve a variety of problems with Objective-C object completion. To go along with the LLVM/Clang-side fixes, we have a variety of Objective-C improvements.
f48acd4 Add bench entries.
36deaee Speed improvements for ULEB128 reading from James McIlree.
36fe991 Confirm should accept both "Y" and "y" in case somebody confuses the "default answer" indicator for a directive to enter a capital letter.
4474729 Dependency file for dylib source was not being cleaned up.
dba0f7f Add more info on the failure.
1d9ffe2 Fixed Objective-C method lookup for methods with a single argument. We assumed that the : was omitted from the selector name, but actually Clang adds the : in the one-argument case.
c536ba7 Don't build optimized unless we are trying to test inlining.
96154be <rdar://problem/10126482>
bd06ff4 <rdar://problem/10103980>
a1b9a90 <rdar://problem/10338439>
d14d518 Make the test case more robust by using line number to break, instead.
2d9adb7 Added the ability to run a process in a shell on MacOSX currently when using the --tty option. So you can now get shell expansion and file redirection:
2546fd2 Add code that reads the APPLE_property debug info, and makes up properties from them.
d882da2 build/Make: Tweak Clang include paths to use LLVM_{SRC,OBJ}_ROOT instead of level based, so that lldb itself can be a symlink inside the tools dir.
f2a0a5c Updated LLVM/Clang to pull in a fix for Objective-C interfaces. This allows us to pull in Objective-C method types on demand, which is also now implemented.
70d7092 Fixed a bug that inhibited symbol lookup. The problem is that we had a bitfield that kept track of what had been found so far, and inhibited searches when the local variable bit was set. This bitfield was not being initialized correctly.
bc50070 Added report errors for when the .apple_XXXX hashed name table lookups contain invalid information. This will help us perfect the tables that are emitted by clang.
22a3afd Allow the Apple hash tables to be emtpy.
3fccc90 Fix order of arguments for target stop-hook list/delete. Having the argument description in the command name could cause a command alias to crash, e.g. command alias zzz target stop-hook delete 1 because the "name" is used to re-fetch the exact CommandObject when adding the final arg.
4049bc3 Fix help strings that refer to the "commands" top-level noun. It's "command", "commands" is not recognized.
6e56157 <rdar://problem/9334299>
668a6c7 Made the Host::SetCrashDescription(const char *) function copy the incoming string to avoid possible later crashes.
0943687 Fixed the eFormatChar, eFormatCharPrintable and eFormatCharArray to print things out correctly again.
8688673 <rdar://problem/10338439>
0731d2c Removed debug printf statements.
91048ef Added the ability for many of the "target modules dump xxx" commands to find modules first in the target, then fall back to the global shared module cache, then fall back to the global module list.
6db3594 Using the wrong type for the break id's (user_id_t is an unsigned int, but internal breakpoints can be negative, and anyway it is a good idea to use break_id_t for breakpoints, no?)
3840cd7 <rdar://problem/10374840>
9b71484 Added a function to ClangASTSource to service lookups for Objective-C methods by selector. Right now all it does is print log information.
32e2564 Cleanup some warnings.
dd6201e "source list -n" should use eFunctionNameTypeAuto not eFunctionNameTypeBase for the name lookup.
bcf07b3 Remove the QAddressIsExecutable packet I added last night.
106d593 Add a missing ')' in the comment.
dc8ff30 Add "QAddressIsExecutable" packet to debugserver. Used to test whether a given address is in an executable region of memory or not. I haven't written the lldb side that will use this packet it hasn't been tested yet but it's a simple enough bit of code.
0922f7c Bitfields in uint8_t's will have format eFormatChar and DataExtractor::Dump doesn't handle bitfields in eFormatChar's correctly, only eFormatUnsigned. Fix DataExtractor::Dump to dump the bitfield eFormatChars correctly.
0296fe7 Do a better job of detecting when a breakpoint command has set the target running again (except you have to ignore cases where the breakpoint runs expressions, those don't count as really "running again").
abb3302 Moved many of the "settings" that used to be in "target.process.*" to just be in the target. All of the environment, args, stdin/out/err files, etc have all been moved. Also re-enabled the ability to launch a process in a separate terminal on MacOSX.
d7a6281 Moved the fixed ScriptSummaryFormat forward declaration into the #ifndef LLDB_DISABLE_PYTHON so it doesn't show up in builds where it is supposed to be disabled.
5b658cc Added a language parameter to the expression parser, which will in the future allow expressions to be compiled as C, C++, and Objective-C instead of the current default Objective-C++. This feature requires some additional support from Clang -- specifically, it requires reference types in the parser regardless of language -- so it is not yet exposed to the user.
aa56141 Additional logging to track original versions of imported variables.
9d60ca8 Remove duplicate and contradictory forward declaration.
9badf14 Fix the test suite failure. The particular line in the test case was there since the initial version dated 2010-21-15. The test started failure recently probably due to work done on the command parsing. Anyway, the specific test sequence is invalid and is fixed now.
6010ace this patch addresses several issues with "command script" subcommands: a) adds a new --synchronicity (-s) setting for "command script add" that allows the user to decide if scripted commands should run synchronously or asynchronously (which can make a difference in how events are handled) b) clears up several error messages c) adds a new --allow-reload (-r) setting for "command script import" that allows the user to reload a module even if it has already been imported before d) allows filename completion for "command script import" (much like what happens for "target create") e) prevents "command script add" from replacing built-in commands with scripted commands f) changes AddUserCommand() to take an std::string instead of a const char* (for performance reasons) plus, it fixes an issue in "type summary add" command handling which caused several test suite errors
d1d9f75 Bumped Xcode project version for lldb-86 and debugserver-151
49cddea5 Xcode project changes to install "lldb" into "/usr/bin" and have LLDB.framework in "/System/Library/PrivateFrameworks", and also have "lldb" in the Xcode.app and the LLDB.framework in Xcode.app as well.
b47c998 Update a missed getHostTriple call, fixes non-__APPLE__ build
b607f42 Missed part of a previous patch.
ce65d2f Patch from Dragos Tatulea which was a modified version of a patch from Joel Dillon that fixed 64 debugging for Linux.
59efe90 Wrapped some logging statements in conditionals, to prevent crashes.
7537dce Updated LLVM/Clang to pick up a fix for imports of C++ vtables, fixing a record layout problem in the expression parser.
289880c For "Debug" and "Release" builds, don't build llvm into the $(OBJROOT) since we often nuke our "build" folder so we can do clean builds. This way if you are building your own LLVM you won't have to rebuild LLVM when you do remove your build folder. The new location for the LLVM build is:
e959f78 Fixed the LD_DYLIB_INSTALL_NAME to the LLDB.framework.
06c306c Fix linux build after r143679.
07c51d0 Include limits.h for PATH_MAX.
193cc83 Fixed a build issue on an older Xcode.
3e4238d Fixed the Xcode project building of LLVM to be a bit more user friendly:
fa9e6dd Occasionally LLDB runs into contexts where the target is stopped in a C++ or Objective-C method but the "self" pointer's valid range actually doesn't cover the current location. Before, that was confusing Clang to the point where it crashed; now, we sanity-check and fall back to pretending we're in a C function if "self" or "this" isn't available.
10dd7a4 Add a utility script:
41a410d Fixed a problem where the "this" pointer didn't have the correct value in the IRInterpreter.
425743e Print out the task suspend count as well.
36bc5ea Modified all Process::Launch() calls to use a ProcessLaunchInfo structure on internal only (public API hasn't changed) to simplify the paramter list to the launch calls down into just one argument. Also all of the argument, envronment and stdio things are now handled in a much more centralized fashion.
2dc2260 The alpha and system z backends were removed.
1c38d10 Fixed the function that gets values for the IRInterpreter to get the value, not the location, of references. The location of a reference has type T&&, which is meaningless to Clang.
ec31b37 Bumping Xcode project versions for lldb-85 and debugserver-150.
1ea79b0 ...And forgot to check in build-llvm.pl. Sigh.
c1d750f Whoops, forgot to commit the updated .zip file.
0fcc7d2 Try to unbreak Makefile builds.
28ebe88 Updated LLVM/Clang to pull in an MCJIT fix that allows us to set __attribute__ ((used)) on expressions that masquerade as methods. When we are stopped in classes in anonymous namespaces, this fix (and enabling __attribute__ ((used)) on the method) will allow expressions to run.
f84d4dd <rdar://problem/10020849>
2581dbf Sometimes the debug information includes artifically- generated special member functions (constructors, destructors, etc.) for classes that don't really have them. We needed to mark these as artificial to reflect the debug information; this bug does that for constructors and destructors.
9911d2f Added functionality to call Objective-C class methods correctly, and added a testcase to check that it works.
99e6e6c Add bench entries.
ad670e4 Change the expected substrings for 'frame variable' output to:
716e3f0 Added the capability (turned off for now) to mark a method as __attribute__ ((used)) when adding it to a class. This functionality is useful when stopped in anonymous namespaces: expressions attached to classes in anonymous namespaces are typically elided by Clang's CodeGen because they have no namespaces are intended not to be externally visible. __attribute__ ((used)) forces CodeGen to emit the function.
7b8eb76 Minor logging changes: added logging right before the expression makes it to the JIT, and made some logging only appear in verbose mode.
fd0c1f4 build: liblldb now depends on the linker library
abe2d36 Restructure the relationship between UnwindLLDB and the RegisterContextLLDBs it contains.
ba560cc Enhanced the ObjC DynamicCheckerFunction to test for "object responds to selector" as well as "object borked"... Also made the error when the checker fails reflect this fact rather than report a crash at 0x0.
e5a4e81 Bumped Xcode project version to lldb-84 and debugserver-149.
b516939 Fixed some warnings after enabling some stricter warnings in the Xcode project settings.
b67c2a2 We can't have the global vector of modules be a static object, or it might get destroyed before all the modules, which will then crash when the next modules tries to take itself off it.
8006735 build: Add the Darwin-Kernel Makefile.
c2ff189 warnings: Fix another place with extension warnings I somehow missed.
869ccb0 Add expectedFailure decorators.
c6b20fc Add some expr evaluations for simple STL data types. Radar to be filed soon.
2bd310c tests: Improve Makefile/dotest to properly set LLDB_HERE variable used in some tests.
bdc85ee ValueObjectVariable::GetClangAST should check that it has a valid Type before accessing it.
c6ba554 build: Fix SWIG include paths on Darwin.
8f4cdb4 build: Build in the Darwin-Kernel OperatingSystem plugin.
8e584ec build: Fix Makefiles on Darwin to link proper dynamic loader plugin.
37fdc1c warnings: Use LLVM_EXTENSION to suppress a bunch of pedantic warnings.
ca6bc7e warnings: Fix a non-standard escape sequence.
aed469f warnings: Fix use of a non-standard escape.
354ffde warnings: Get rid of spurious semicolon.
f727cbf build: Add some -Wno's for things LLDB isn't clean on yet.
a1ebbd2 build: Fix an improperly formed include path (works under Xcode's promiscuous include additions, but not Makefiles).
97c8957 warnings: Fix a bunch of -Wreorder problems.
f09a857 warnings: Fix several uses of trailing comma on enumeration extensions.
705a098 warnings: Fix up several const qualified return types.
3ac9f04 warnings: Fixup a number of mismatched tags problems.
2888f55 build: Fix Darwin linker flags which weren't properly passed (and aren't valid).
b1668c9 build: Fixup Darwin process plugin build for Makefiles.
ce05757 AppleObjCTrampolineHandler: Use array_lengthof instead of unnecessary sentinel.
8ca450b Revert 143359 and modify the test case to not include non-valid c identifier character.
715f6b0 The IRDynamicChecks subsystem was not properly detecting Objective-C method calls because the "lldb.call.realName" metadata was no longer being correctly installed. I fixed this problem.
a9c4f31 <rdar://problem/10368163>
437e3ff Add bench entries.
bec4180 Fix the r143266 check-in which broke TestCommandRegex.py.
f35a112 Add a Python script to invoke each test file under the test root using a separate process. Example:
2f8d35b When running tests, prepend our LibDir to the user's SHLIBPATH_VAR instead of replacing it.
41a857a finish removal of alpha arch -- previous half-removal caused lldb to assert on startup
9394b5a Cloned FindExternalVisibleDecls from ClangExpressionDeclMap to ClangASTSource, and moved all general type and namespace lookups into ClangASTSource. Now ClangASTSource is ready to complete types given nothing more than a target and an AST context.
bb715f9 Moved FindExternalLexicalDecls and a few smaller functions from ClangExpressionDeclMap to ClangASTSource.
73b520f I moved the responsibility for interacting with the AST importer on completing namespace mappings from ClangExpressionDeclMap to ClangASTSource.
cf78037 Add a simple regression test to go with r143260. CommandInterpreter::PreprocessCommand() should not infinite loop when a target has not been specified yet.
a8f53b9 Remove alpha from list of known architectures -- it was just removed from llvm TOT.
d6ceffb Updated the project to use the "DEVELOPER_DIR" build setting that specifies the path to the /Developer directory, and also bumped the Xcode project version for lldb-83 and debugserver-148.
d8a218d Fixed the "expression" command when it comes to using it with the new GDB format command suffix:
e32a7bf Fix a type in Symbol::Compare which was causing calls to Compare with type eSymbolTypeAny to fail.
cb442da Add bench entries.
b09f847 Get a dummy target to allow for calculator mode while processing backticks. This also helps break the infinite loop caused when target is null.
746979d Fixed the continuation dumping of instructions to properly advance the previous address only by the number of bytes consumed by the disassembly:
f76afff As part of a general refactoring of ClangASTSource to allow it to complete types on behalf of any AST context (including the "scratch" AST context associated with the target), I scrapped its role as intermediary between the Clang parser and ClangExpressionDeclMap, and instead made ClangExpressionDeclMap inherit from ClangASTSource.
1d4e4d5 Add an example customization directory which uses a binutils.py module to provide commands to print the binary representaion of an integer.
3ec8bb7 Fixed the GDB format to allow the size and format characters to come in any order. Also hooked up the new formats for instruction, hex float and address to the new formats.
7089d8a Added the ability for the target to specify Modules that will not be searched when setting breakpoints, but only if no module is specified. The Darwin platform uses this to not set breakpoints in dyld.
ca54193 Added support for C++0x char16_t and char32_t types.
0e8147b Enabled the "printf" attribute on all debugserver logging functions and fixed the ensuing mayhem.
7268b4c Added the ability to have GDB formats appended to any command so you can do things like:
e700b60 Remove extra newline in the docstring.
18fedd7 Added support for the C++Ox "nullptr_t" type.
47fb2df Add bench entries.
91da005 Fix a typo.
b6ee2e5 Bumping Xcode project version in mainline to match the latest build that was submitted.
3dd49fd Added a bunch of logging to CompleteType for TagDecls and ObjCInterfaceDecls.
c0977b9 Python does some bad things to the signal masks in the current process and then we spawn child processes (debugserver, etc) and those bad settings get inherited. We stop this from happening by correctly mucking with the posix spawn attributes.
1c65853 Grab the address of the breakpoint site for the StopInfoBreakpoint so if it gets deleted before GetDescription is called we still at least know where it was.
8226e94 Fix up how we shut down the communication with debugserver so we don't rely on debugserver being responsive to shut down.
0a833be Add a binutils.py which contains Python functions for displaying bit representation of numbers.
8904eb0 Print out the version of the locally built 'lldb' binary, not the one found in your PATH env variable.
88309fd This benchmark is meant to run the locally built 'lldb' binary, not the binary on the PATH env variable.
0881869 Fixed a leak in the LLVM disassembler where the InstructionLLVM class dropped its instruction handle on the floor instead of releasing it correctly.
b7669b3 <rdar://problem/10357230>
f35a96c Added a function to the Host that gets a dummy target for it, so that people who want to use LLDB as a calculator can run simple expressions without needing a target or process.
6f3bde7 Changed the way the expression parser handles variables of reference types. Previously, such variables were materialized as references to those references, which caused undesried behavior in Clang and was useless anyway (the benefit of using references to variables is that it allows expressions to modify variables in place, but for references that's not required).
5e94f62 Add bench history entries.
9351b4f Undo r142549 and r142543 which temporarily relax the expected substrings for watchpoint creation output due to wrong debug info from clang. It has been fixed.
24a6bd9 Added support for the new ".apple_objc" accelerator tables. These tables are in the same hashed format as the ".apple_names", but they map objective C class names to all of the methods and class functions. We need to do this because in the DWARF the methods for Objective C are never contained in the class definition, they are scattered about at the translation unit level and they don't even have attributes that say the are contained within the class itself.
8d167d6 Liberalized the "id" check a little; now "id" can be found in namespaces.
b549b0a Disabled lookups for the Objective-C builtin type "id;" the compiler should pick this type up automatically.
9b947fc Updated the grossly out of date status page.
0d80e07 Add display of min and max samples to Stopwatch's string representation.
20b8a96 Added an extra parameter to the object-checker functions in the Objective-C language runtime that is set to the selector that is being passed to the object.
ebbec4c Establish a baseline for bench.py score by using a fixed lldb executable as the inferior program for the lldb debugger to operate on. The fixed lldb executable corresponds to r142902.
4b3cef0 Extended the IR interpreter to handle the variables "_cmd", "this", and "self". These variables are handled differently from all other external variables used by the expression. Other variables are used indirectly through the $__lldb_arg operand; only _cmd, this, and self are passed directly through the ABI.
4cd531f Fixed the display of OSTypes (the four character codes).
eeddf87 When completing "help foo bar" if "foo" is not a real command, don't ask its NULL command object to complete the line.
966096b Update the GDB format text to be a bit more clear.
cfbfb1a Use full path to ClangForward.h
a31b4dd Added a new #define, LLVM_NDEBUG_OFF, that should be set if linking against an LLVM compiled with NDEBUG off. If it is set, we do not enable NDEBUG in any place where we include LLVM headers.
65193b3 Fixed VerifyDecl to use shared forward declarations.
902b5be A simple fix for the GDB format strings so the byte size parameter gets properly marked as valid.
5e8eb5c Fixed an issue where a class that resides inside another class wasn't getting an access specifier set on it, causing an assertion to fire when building with a Debug+Asserts build of clang.
c6d161e Added VerifyDecl, a function that, when LLDB is linked against a debug LLVM, runs a variety of functions -- currently just one -- that verify that the Decls we create are valid.
9c23673 Cleaned up many error codes. For any who is filling in error strings into lldb_private::Error objects the rules are: - short strings that don't start with a capitol letter unless the name is a class or anything else that is always capitolized - no trailing newline character - should be one line if possible
2395ede Fix typo in the docstring.
2bb0549 Add another metric for startup delay -- run to breakpoint, which measures the time from issuing the run command till the first breakpoint hit. Example:
3a54676 Fixed a problem where local variables conflict with types of the same name. If a local variable with the given name is found (and we are not searching a specific namespace) we stop right then and there and report it.
0409d99 Benchmark the turnaround time starting a debugger and run to the breakpoint with lldb vs. gdb.
c7ca466 Improved handling of static data in the expression parser. Now expression like the following work as expected:
0eb2139 Fixed our handling of const functions, compensating for debug information that occasionally gets the const-ness of member functions wrong. We used to demangle the name, add "const," and remangle it; now we handle the mangled name directly, which is more robust.
5325ce9 Patch from Dragos to fix Linux build!
a42880a Updated all commands that use a "--format" / "-f" options to use the new OptionGroupFormat. Updated OptionGroupFormat to be able to also use the "--size" and "--count" options. Commands that use a OptionGroupFormat instance can choose which of the options they want by initializing OptionGroupFormat accordingly. Clients can either get only the "--format", "--format" + "--size", or "--format" + "--size" + "--count". This is in preparation for upcoming chnages where there are alternate ways (GDB format specification) to set a format.
3f2ec9b Prefix display/undisplay regexp command alises with "_regexp" as per the style of the other regexp command aliases.
a0a10d0 typeo
a2f701f Add examples of shortest-possible lldb commands where appropriate. Add new "Examining Variables" section. Updated a few command entries to match current lldb behavior.
66756c2 <rdar://problem/10335756>
9d855c6 Simplified the CommandInterpreter::StripFirstWord logic by making it a static function and having it not require both a bool and a quote char to fill in. We intend to get rid of this functionality when we rewrite the command interpreter for streams eventually, but not for now.
64df1aa Add a bench-history file to keep track of simple bench results.
4d96a74 Add more context information to the stop-hook mechanism by displaying the stop-hook command in the '- Hook id' header. This should improve readbility of the 'display' command if, for example, we have issued 'display a' and 'display b' which turn into "target stop-hook add -o 'expr -- a'" and "target stop-hook add -o 'expr -- b'".
911f519 Minor change.
33d0129 Test some lldb command abbreviations to make sure the common short spellings of many commands remain available even after we add/delte commands in the future.
d1ede68 Add two new @expectedFailure decorators.
9d1acc1 Add "di" and "dis" aliases to "disassemble" so they will win over "display".
6bdea82 Add a "-a" option to "image list" to show the image at a given address.
114b640 Fix test regressions due to the addition of 'display' alias to the top level commands, which conflicts with the original 'dis' -> 'disassemble' unique expansion. Change it to 'disass' now.
613790a Removed the @expectedFailure decorators from test cases. They have been fixed with the r142717 check-in.
fa1f617 Decoupling of lock-related code from the core of ScriptInterpreterPython. All that concerns locking the Python interpreter is now delegated to the internal ScriptInterpreterPython::Locker class. Several changes in ScriptInterpreterPython to accommodate this new pattern.
c28bbdb Move Python.h includes out of the headers into the .cpp file where it's actually used.
3ce5128 Remove unused include of deprecated header.
900b3c7 Bumped versions for lldb-81 and debugserver-146.
f6a5bd7 Added template support when parsing DWARF into types. We can now use STL classes in the expression parser.
c09b8b9 Document nexti, show some shorter versions of long lldb commands.
86a07da Made the expression parser handle persistent variables correctly even after the process has quit.
730cae0 Add "display" and "undisplay" aliases for target stop-hook add/delete. A patina of gdb's "display" command, intended mostly for simply monitoring a variable as you step through source code. Formatters do not work, e.g. display/x $pc does not work.
eef9057 Add bench.py as a driver script to run some benchmarks on lldb. Add benchmarks for expression evaluations (TestExpressionCmd.py) and disassembly (TestDoAttachThenDisassembly.py).
47eb00e Add "stepi" as an alias for thread step-inst in addition to "si". Add "nexti" an "ni" as aliases for thread step-inst-over.
1cbfabd Enabled dedicated debugger support in Clang, meaning that Objective-C methods returning types incompatible with "id" can be properly cast.
9b1c178 Fixed a missing quote.
a7cb1fa Implemented an extension to the namespace map that permits a namespace map to be created and populated when the namespace is imported, not just when it is requested via FindExternalVisibleDecls().
61ddf56 If a process plug-in was specified by name, always let the plug-in get used.
d910853 Add a benchmark for measuring the response time of the 'frame variable' command. Example (start the lldb inferior, break at the Driver::MainLoop() function, and issue 'frame variable'):
a85b571 Rephrase benchmark output display.
fe5f1ed Add a '-n' option to turn off printings of build dir, lldb version, svn info, and other headers which happen before the listingings of test cases.
7b0e08c Fix the compilation warning while running the test case.
65e01e7 Updated LLVM/Clang to pull in a variety of type importation fixes, reducing the amount of requests made to LLDB for unknown types and increasing fidelity of the expression parser.
557ccd6 Made the IR interpreter more robust in the presence of arbitrary pointers, allowing direct dereferences of literal addresses. Also disabled special-cased generation of certain expression results (especially casts), substituting the IR interpreter.
591cf15 Lock the Unwinder before accessing it.
3a9c096 Fix wrong directory name.
703de44 Add a benchmark for measuring start up delays of lldb, including:
bbe3916 Fixed some issues where we might not have one of the new apple accelerator tables (like the .apple_namespaces) and it would cause us to index DWARF that didn't need to be indexed.
8a1b122 Breakpoint specification can have the form '-n main', so it's not a good idea to check that the option arg in '-x opt_arg' does not start with a '-' char.
3848d12 Really delete it this time.
ac56c17 Directory renaming: example -> expression.
de3d67d Directory renaming: example -> expression.
5f2ed17 Parameterize the iteration count used when running benchmarks, instead of hard-coded inside the test case. Add a '-y count' option to the test driver for this purpose. An example:
8f8345f Remove stale code.
a38fddb Remove stale code.
289fd0e Up until now, we have been using pexpect to spawn an lldb process and use lldb commands to bring the debugger to the desired state.
a23ca42 Modified the ASTDumper to return a "const char *" instead of a copy of the std::string and modified all places that used the std::string it returned to use the "const char *".
f133254 Missed this file when doing r142543 to temporarily relax the expected substrings for watchpoint creation output.
076f0e0 Temporarily relax the expected substrings for watchpoint creation output due a bug in the decl file info of a global variable emitted by clang.
444e35b Moved lldb::user_id_t values to be 64 bit. This was going to be needed for process IDs, and thread IDs, but was mainly needed for for the UserID's for Types so that DWARF with debug map can work flawlessly. With DWARF in .o files the type ID was the DIE offset in the DWARF for the .o file which is not unique across all .o files, so now the SymbolFileDWARFDebugMap class will make the .o file index part (the high 32 bits) of the unique type identifier so it can uniquely identify the types.
644ad08 Modify lldbtest.Base.runHooks() to now take the following keyword arguments:
5f3c567 Extract the run hooks functionality into the base class lldbtest.Base.
4c8353b Changed lldb_private::Type over to use the intrusive ref counted pointers so we don't have to lookup types in a type list by ID.
cbed999 Fix build under gcc.
a5dd2bb Add docstrings for SetCondition() and GetCondition() APIs.
e5696bd Remove stale comment.
5a5c4a8 Modify the help text for watching a variable or its pointee.
3bf3a9d This patch fixes debugging of single threaded apps on Linux. It also adds some asserts and additional logging support.
c4adf27 Removed some debug support I accidentally committed.
e3737fd Improved logging, replacing the old ASTDumper (which we never used) with a much simpler class that wraps the relevant dump functions in Clang. This class also knows to disable external lookups on DeclContexts being dumped so it should be safe to print incomplete Decls.
5ce0e2b Add code to RegisterContextLLDB::InitializeNonZerothFrame to detect a multiple stack frames with the same CFA (or an alternating sequence between two CFA values) to catch a handful of unwind cases where lldb will inf loop trying to unwind a stack.
1a7b956 This patch alloows lldb to build under GCC.
2189eef Add test cases for setting condition on a watchpoint for both command and API.
59df36f this patch introduces a new command script import command which takes as input a filename for a Python script and imports the module contained in that file. the containing directory is added to the Python path such that dependencies are honored. also, the module may contain an __lldb_init_module(debugger,dict) function, which gets called after importing, and which can somehow initialize the module's interaction with lldb
1e8a14a Rename test file.
87ce647 Fix wrong docstring.
712a628 Add a commnad to set a condition for a watchpoint. Example:
37e2783 Handled the call operator properly.
43d3906 Make "next" and "step-out" work when in stepping over or out of inlined functions.
76e55f7 Make the step range plans capable of supporting multiple ranges. Also make their constructors public, there isn't any good reason why you shouldn't be able to make these plans.
e8f4e11 Make the "log enable lldb-step" output easier to parse.
6bb7337 Quiet the default "log enable lldb step" output down a little bit.
5f24c50 Add function decls to their parent decl context.
10babe1 Added a buildbot script that automatically checks out the latest LLDB, LLVM and Clang and makes sure they work okay together. The buildbot is currently Mac OS X only because it uses xcodebuild.
6364304 Make sure we create only unique one namespace per AST when parsing the DWARF.
67bbb11 Improved expression logging. Now all calls to FindExternalVisibleDecls and FindExternalLexicalDecls are marked and given unique IDs, so that all logging done as part of their execution can be traced back to the proper call.
41a55ef Add SBWatchpoint::GetError() API, which is not currently populated as yet.
d652268 Remove debug 'print watchpoint' statement.
1e90cce Rename directory command_python to command_script, and the test file, too.
f5c0c72 Added the ability to run expressions in any command. Expressions can be inserted in commands by using backticks:
50e0534 Add a test case to exercise the newly added SB API:
c22cde8 Improved logging for FindExternalLexicalDecls to make it easier to track down which members belong to which structs (and which call to FindExternalLexicalDecls is doing the reporting).
6442acf Fix wrong docstring with respect to API usage.
ecd4feb SBValue::Watch() and SBValue::WatchPointee() are now the official API for creating a watchpoint for either the variable encapsulated by SBValue (Watch) or the pointee encapsulated by SBValue (WatchPointee).
03fd0d0 Modified the DWARF parser to take care of a 1 clang::DeclContext to many DIEs. Prior to this fix, there was a 1 to 1 mapping.
9f54ab7 Fixed a case where we might end up trying to parse a type in the DWARF parser for a method whose class isn't currently in the process of completing itself. Currently, methods of a class, must be parsed when the class type that contains the method is asked to complete itself through the clang::ExternalASTSource virtual functions. Now we "do the right thing" by checking if the class is being defined, and if so we parse it, else we tell the class to complete itself so everything happens correctly.
b01f7a4 Cleaned up a few functions that never get used.
c839adc Enabled the namespace-specific search functionality, which had previously been commented out while I tested it. It's not fully working yet, but it doesn't break our testsuite and it's an important piece of functionality.
a759706 Moved the list of found namespaces into the search context object. Having it populated and registered within a single FindExternalVisibleDecls call worked fine when there was only one call (i.e., when we were just looking in the global namespace).
b304a74 Revert the change to "target variable" that was causing test suite failures.
1fa6b3d Cleaned up the SBWatchpoint public API.
aa4a553 Removed namespace qualification from symbol queries.
0fcec13 Completed the glue that passes a ClangNamespaceDecl * down through Module and SymbolVendor into SymbolFile. Added checks to SymbolFileDWARF that restrict symbol searches when a namespace is passed in.
784fb85 Add 'cd -' feature to change to the previous working directory.
e349e56 Always use the full variable name when dumping globals since they might be in namespaces.
7a1e5da Add a version of ResolveFunction that takes a "const DWARFDebugInfoEntry *" and a "DWARFCompileUnit *" to avoid doing a DIE lookup twice and to prepare for using namespaces in the lookups.
4a07832 Now that we know the values are going to stick around, we don't need to look them up again when materializing.
db29bba Added a function to test if a ClangNamespaceDecl matches the current symbol file. This will help us to minimize lookups that can't possibly match anything in the current symbol file.
82770e0 Added the ability to see if a DIE is contained in a namespace.
aa0b2c1 Minor fix.
0d5b38d Add pointer to the examples/customization directory for examples of lldb customizations.
6d284ef Extended the lifetime of Clang parser objects to the lifetime of ClangExpressionDeclMap. This allows ClangExpressionVariables found during parsing to be queried for their containing namespaces during expression execution.
fbb07c3 Prepend '~' to the sys.path so that ~/utils.py takes precedence.
bff89e1 Patch by Enrico to provide an example of 'import' commnad for importing .py/.pyc files.
16c4ec3 Refactoring in preparation for having multiple calls to the FindExternalVisibleDecls function.
117f2e2 Add reference to ToT/examples/customization for more customization examples.
5e573a9 Add an examples/customization directory and add a subdirectory pwd-cd-and-system which contains the lldb init file and a utils.py Python module in order to add the 'pwd', 'cd', and 'system' lldb commands.
38d084f Made the expression parser's type search call the proper namespace-aware APIs.
0eca1a7 Added support to ClagnExpressionDeclMap for finding data symbols in namespaces.
30640cc Add cleanups for 'command script add' to TestCommandPython.py.
a5ec5a3 Changed FindExternalVisibleDecls() to use the module level FindFunctions() where appropriate and not use SymbolContext::FindFunctionsByName().
afb01f3 Oops, committed my local build settings. Fixed that.
94cd0ca Made FindGlobalVariable() optionally search a specific module and namespace. Also made it use FindGlobalVariables() instead of the more heavyweight GetVariablesForVariableExpressionPath().
3e80cd9 Added ClangNamespaceDecl * parameters to several core Module functions that the expression parser will soon be using.
03f64ca Cleanups in preparation for making FindExternalVisibleDecls look in individual modules rather than globally.
d5acaa0 Add description of a more capable 'cd' command using 'command script add'.
141f8d9 Fix preprocessor warnings for no newline at the end of the source files.
16b53ab Implemented a namespace map that allows searching of namespaces (only in the modules where they've been found) for entities inside those namespaces.
192871b Add a more generic stepping benchmark, which uses the '-k' option of the test driver to be able to specify the runhook(s) to bring the debug session to a certain state before running the benchmarking logic. An example,
ac51e9f Patch by Dawn to add the logging capabilities to ProcessLinux.cpp.
01df057 Fix a typo in ProcessKDP::DidAttach().
e06aede Added a missing file from a previous checkin.
6d1a7c4 Add documentation on providing the 'cd' and 'pwd' commands to lldb with the help of the embedded Python interpreter and the 'command regex' command.
fa407ad Patch from Dragos Tatulea to re-enable the PECOFF object file parser for all builds on all systems.
d11e14b Added some simple testcases for figuring out breakpoints by name in classes & namespaces.
7340919 Remove a debugging printf...
38f823c Add '-k' option to the test driver to be able to specify a runhook, which is an lldb command for the debugger to execute for certain kind of tests (for example, a benchmark). A list of runhooks can be used to steer the debugger into the desired state before more actions can be performed.
1fb8a2d Add a SBTarget::BreakpointCreateByName API that allows you to specify the name type mask.
52f794a Fix a couple of places in FindFunctions where I was using the passed in name_type_mask rather than the computed effective_name_type_mask.
7c07873 Remove test logic to check for clang and skip the rest due to insufficient debug info. Recent changes in lldb inlining robustness seem to have fixed it.
b8f74aa Patch from dawn@burble.org to build on linux!
e00c930 Add '-e' and '-x' options to the test driver to be able to specify an executable (full path) and the breakpoint specification for the benchmark purpose. This is used by TestSteppingSpeed.py to benchmark the lldb stepping speed. Without '-e' and 'x' specified, the test defaults to run the built lldb against itself and stopped on Driver::MainLoop, then stepping for 50 times.
20f6fcf Modify sidebar.incl and remove files to reflect r141554 change.
2f02e77 Remove utils/emacs directory from lldb.
81a20a0 Patch from Dragos Tatulea regarding typedefs with the new RangeArray template class.
d51200c Remove unneeded exports.
be42123 Changed RangeMap over to use llvm::SmallVector and updated the RangeArray and the RangeDataArray to have an extra "unsigned N" template parameter. Updated the lldb_private::Block to use a RangeArray with a uint32_t for both the function base offset and block range size, and then a 1 for the small vector size since most lexical blocks in DWARF only have 1 range. Updates the DWARFDebugRanges RangeArray to use an unsigned of 2 since most blocks that have more than one range usually have 2. Also updated a DWARFDebugAranges to default their RangeArray to use a SmallVector with unsigned size of 1 since this will take care of the .o files when doing DWARF in .o files and since there really isn't any good size we can guess with.
c03a99a Added some debug code that can verify that all RangeMap.h maps are sorted when needed since RangeArray and RangeDataArray instantiations depend on it. I ran the test suite with ASSERT_RANGEMAP_ARE_SORTED defined and I got no assertions, so I disabled it prior to checkin.
2b73576 Removed unneeded content.
49e08e3 Started on the export table for the MappedHash.
8a2a4f8 Fix the last testsuite regression from the apple-names stuff.
bc36a86 Added more functionality to Range template classes in RangeMap.h and converted remaining DWARF areas that were using ranges over to this class. Also converted lldb_private::Block to use it.
060d53f Fixed a memory leak of ASTResultSynthesizers, by attaching them to the ClangExpressionParser.
f28d134 Pared out debug information from the LLVM zip file.
e0510ea Add fuzz call for SBBreakpointLocation.GetAddress().
c153518 Updated LLVM/Clang to pull in the latest ARM disassembler. This involved minor changes to the way we report Objective-C methods, as well as cosmetic changes and added parameters for a variety of Clang APIs.
659758a Remove some commented out code.
1dca634 Clean up some documentation.
0e6d511 Mention SBBreakpointLocation::GetAddress in the Python .i file.
8b7b227 Move the responsibility for translating the various eFunctionNameType lookups to the SymbolFIle (it was done mostly in the BreakpointResolverName resolver before.) Then tailor our searches to the way the indexed maps are laid out. This removes a bunch of test case failures using indexed dSYM's.
7141018 When a function calculates its module, make sure it returns the "real" module, not the linked .o file.
464a92a Fix the option lists that "--file" belongs to so the help won't come out whonky.
ca804bf Don't look up main to find the default source file till somebody actually asks for it.
8384612 Removed code that was left in during testing and debugging of an issue.
7d7f447 If we spawn an lldb process for test (via pexpect), do not load the init file unless told otherwise. Set up self.lldbOption to be "--no-lldbibit" unless env variable NO_LLDBIBIT is defined and equals "NO". Also add "-nx" to gdb spawned.
61aca5d Re-organized the contents of RangeMap.h to be more concise and also allow for a Range, RangeArray, RangeData (range + data), or a RangeDataArray. We have many range implementations in LLDB and I will be converting over to using the classes in RangeMap.h so we can have one set of code that does ranges and searching of ranges.
c409821 Turn the EvaluateExpression (..., True) tests back on.
257663e Since we use address ranges a lot I added a templatized class that allows us to easily control the base address type, the size type, and the data that is stored with each range. It is designed to be populated by appending all needed items, then sorting the resulting list, and optionally minimizing the list when done. I adopted this new list in the DWARFDebugAranges for even further memory savings.
d426d63 <rdar://problem/10226227>
3d790bb Added better logging for the case where we don't find a PC in a block.
878de9a Add a simple scenario of emacs and lldb interaction.
5d6e161 Allow the crash log file path to contain an initial tilde component.
0c46315 <rdar://problem/10226227>
0e17253 Simplify code to print symbols and sections within a module using the built-in iterators.
b238517 Simplify the verbose output of WatchpointLocation::DumpWithLevel().
428b550 ProcessGDBRemote::BuildDynamicRegisterInfo() - even if we don't have a Target architecture set up yet, if we're talking to an Apple arm device set the register set based on the arm device's attributes; this is a safe assumption to make in this particular environment.
8b3ed5c Add a test sequence for 'target variable' command when no arguments are given.
c7bbd27 Added a new logging channel to the DWARF called "lookups":
4a3df74 Add a page describing the emacs integration elisp code based on the Grand Unified Debugger. An lldb-enhanced gud.el is located under utils/emacs.
b523031 Stop spurious "DW_AT_specification(0x%8.8x) has no decl" warnings that were due to not parsing the function types when the function blocks are made and parsed.
1037808 Stop empty C strings in summaries from showing "<data not available>" when a "const char *" is NULL. Also cleaned up the display of strings when you have an array of chars that are all NULL. Previously we were showing: ""... We now show: ""
fac9388 "target variable" will now display the current frame's compile unit globals and statics when no arguments are given.
e14cf4e Add capability to set ignore count for watchpoint on the command line:
840a992 Fixed a crasher where the m_frames collection was being accessed without using the mutex.
8bdf57c Fix a problem where the stop-hook command 'frame variable g_val' produces nothing when newly created threads were subsequently stopped due to breakpoint hit. The stop-hook mechanism delegates to CommandInterpreter::HandleCommands() to execuet the commands. Make sure the execution context is switched only once at the beginning of HandleCommands() only and don't update the context while looping on each individual command to be executed.
ff9a7e0 Added missing file.
00db215 Enable all the new accelerator tables if they are present and don't manually index the DWARF. Also fixed an issue with memory accelerator tables with a size of 1 where we would loop infinitely.
681bb5e Add more docstring to the Python interface file for SBSection.
d94f973 Add fuzz call for sub-section iteration for SBSection.
7e98e09 Add SBSection API to the fuzz testing.
6136969 Add fuzz call for watchpoint location iterator, too.
a70c157 Add fuzz calls for various iterators, too.
3689431 Add comment markers for in_range(symbol, section).
5956604 Fix regression of test SourceManagerTestCase.test_display_source_python.
15afa9f Removed lldb::SBSourceManager_impl. We export everything in the lldb namespace and this implemenation that backs our lldb::SBSourceManager should not be exported.
044c02b Bumped Xcode project version for lldb-80 and debugserver-145.
05e3b9e Fixed an issue where a variable whose value is in a register might end up not saying that its children are load addresses.
1913306 Print object names in case we have a .o file in a static archive when logging DWARF errors and warnings.
b8dfc96 Fix segfault in UniqueDWARFASTTypeList::Find if we are comparing an anonymous struct type (which lacks any name).
5cac6a5 Add SBFrame.WatchLocation() to find and watch the location pointed to by a variable usng the frame as the scope.
2f57db0 Cleaned up the the code that figures out the inlined stack frames given a symbol context that represents an inlined function. This function has been renamed internally to:
7685ccc Small fix to "frame select" sans frame # feature added yesterday.
467c449 Remove the "-feliminate-unused-debug-types" OTHER_CFLAGS.
90c56e6 o lldbtest.py:
f92d0dd Removed some commented out code from the DWARF parser.
f29d7f2 Destroy a target when it is deleted.
d65593d After deleting a target, clear the target object and remove orphaned modules.
6c19c8a <rdar://problem/10212450>
1b45252 Add an accompanying option to the 'frame variable -w' command to, instead of watching the variable, watch the location pointed to by the variable. An example,
bb2218f Remember to mark the OptionValueUUID as set in SetOptionValue.
f11c029 Add docstring to in_range() function residing in the lldb module.
6acf30a Fix extraneous import as a result of the last change.
bf338e6 Migrate the in_range(symbol, section) and symbol_iter(module, section) utility functions from lldbutil.py to the lldb.py proper. The in_range() function becomes a function in the lldb module. And the symbol_iter() function becomes a method within the SBModule called symbol_in_section_iter(). Example:
ed11c1e Fixed an issue where a lexical block or inlined function might have bad debug information generated for it. Say we have a concrete function "foo" which has inlined function "a" which calls another inlined function "b":
811ded5 Add an additional "frame select" usage where it will re-select the current frame if no frame is specified. This is useful to get the source context lines re-displayed when you need a reminder of where you are in the source currently.
2d9b29b Fix verbose logging of unwinders.
90b2079 Centralize the warning reporting and use ReportWarning & ReportError everywhere we were using fprintf(stderr directly.
3dd956e Modify the delegation chain from MachThreadList -> MachThread -> DNBArchProtocol so that when the watchpoint state is changed, not only does the change propagate to all the thread instances, it also updates a global debug state, if chosen by the DNBArchProtocol derivative.
2cd9fbd Free up some space in lldb_private::Block by not requiring a sibling pointer. The old way of storing blocks used to use the sibling pointer, but now all blocks contain a collection of shared pointers to blocks so this isn't required anymore and a parent can be asked to find the sibling block for a child block.
c7f18c8 Missed one place where we should use the target's SourceManager, not the debugger's.
9a93fcd If the new .apple_names and .apple_types DWARF accelerator tables are available, we currently will still index the DWARF ourselves and assert if the name lookups differ. This will help us transition to the new accelerator tables and make sure they are workng before we switch over entirely.
48c7756 Fix a bug in the current MacOSX MachThreadList::EnableHardwareWatchpoint() impl so that it enables the hardware watchpoint for all existing threads. Add a test file for that. Also fix MachThreadList::DisableHardwareWatchpoint().
60a5424 Found a great optimization after speaking with Sean Callanan which cleans up the implementation details of the on disk hash, these changed implement the changes in the on disk table format.
3a63fff Fix help string for "frame variable".
ff2ec04 Modify lldbutil.in_range(symbol, section) to deal with the symbol whose end address is an LLDB_INVALID_ADDRESS. Modify the test case to dump all the symbols in all the sections.
f6e3de2 Convert over to the latest and greatest on disc accelerator hash tables. Renamed the DWARF sections to ".apple_names" and ".apple_types" until we get more buy in from other vendors.
e708261 Add a test sequence of iterating through a module's symbols belonging to a section. Add the relevant utility functions to the lldbutil.py file.
dc90162 Need to go to the containing inline block to get the inline name right.
fd4fe88 Add a simple test TestModuleAndSection.py to exercise some module/section-related APIs. In particular, it iterates through the executable module's SBSections, looking for the '__TEXT' section and further iterates on its subsections (of SBSection type, too).
a9f92b1 Make the assignment of TestBase.mydir more portable.
8a0d897 SBWatchpointLocation.GetDescription() takes an additional description level arg. Modify get_description() utility function in lldbutil.py to handle that.
5eb54bb Add SBTarget::GetLastCreatedWatchpointLocation() API and export to the Python interface. Also add rich comparison methods (__eq__ and __ne__) for SBWatchpointLocation. Modify TestWatchpointLocationIter.py to exercise the new APIs.
b59194f Add fuzz testing for newly added SBWatchpointLocation API.
a7d8951 Added an API to SymbolContext to hide the complexity of getting the function name from a symbol context. Use that in CommandCompletions to get the right name.
919a434 Enable the following CFLAGS in the Xcode project build:
092bd15 Export the watchpoint related API (SBWatchpointLocation class and added SBTarget methods) to the Python interface.
d9b4425 Fixed the public and internal disassembler API to be named correctly:
e97e4e3 Fixed an include path that was breaking Linux builds.
096c293 Add SB API class SBWatchpointLocation and some extra methods to the SBTarget class to iterate on the available watchpoint locations and to perform watchpoint manipulations.
be46d6d Fixes for a few different versions of the darwin crash log.
88b6ac2 Remove the @expectedFailureClang custom decorator for indicating clang-specific test failures. It has been fixed on the lldb side to compensate for bad debug info (line table information).
de3d27e Factored out handling of the source code for an expression into a separate class. This class encapsulates wrapping the function as needed. I am also moving from using booleans to indicate what the expression's language should be to using lldb::LanguageType instead.
ee01551 Added an example that symbolicates symbol information. This file is mostly geared towards darwin crash logs at the moment, though it could be made more generic with a few tweaks.
dfbe949 Modify SBFrame::WatchValue() impl so that for the watchpoint location created, it also populates the variable declaration location if possible.
23b8abb Added more functionality to the public API to allow for better symbolication. Also improved the SBInstruction API to allow access to the instruction opcode name, mnemonics, comment and instruction data.
15ef51e Added the ability to get all section contents, or the section contents starting at an offset (2 separate methods). This helps the scripting interface stay more natural by allowing both from Python.
ad0134d Fix comment.
dc0cbd1 SBSection supports iteration through its subsections, represented as SBSection as well. SBModule supports an additional SBSection iteration, besides the original SBSymbol iteration. Add docstrings and implement the two SBSection iteration protocols.
c324d5f Adjust kext load messages in DynamicLoaderDarwinKernel::ParseKextSummaries so we print result information if a kext fails to be located or loaded for some reason.
980c750 Fixed build issues after recent checkin.
432efbc Added missing file.
9a29f00 Add GetAddress to SBBreakpointLocation, and put the .i files in the API section of the Xcode project.
27a944d Add FindValue() and WatchValue() fuzz calls to the mix.
3e8c25f 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
4c24b0a Add an SB API SBFrame::WatchValue() and exported to the Python interface to set a watchpoint Pythonically. If the find-and-watch-a-variable operation fails, an invalid SBValue is returned, instead.
bfb4199 Add a simple regression test for 'target stop-hook list' with no target specified. It should not crash lldb.
e031d3e Added a test for problems caused when Clang errantly makes the line range for one line too long, so that the jump from the line above the bad line to the line after ends up in the middle of the bad line instead. Added a workaround to lldb to just continue to the end if we find ourselves stopped in the middle of some other line.
c86582f Add a (bool)end_to_end parameter, default true, to the Target::Remove/Disable/EnableALLWatchpointLocations() methods. If passed as false, it signifies that only the debugger side is affected.
6e3a241 in CommandObjectTargetStopHookList::Execute, if we don't have a target, return before we try to dereference the target later in the function. Currently,
0f4d0f3 If stepping takes us from the line range we were stepping through into the MIDDLE of another line, then continue till we get to the real beginning of a line. This is mostly to work around debug information bugs.
3856985 Add test cases for watchpoint list, enable, disable, and delete commands.
0f22304 A second try to make the TestStopHookMechanism.py more robust after recent changes.
3f39170 Add a simple test case for 'help watchpoint', 'help watchpt-id', and 'help watchpt-id-list'.
d430b91 The "Stop Hooks" anchors have been removed from the stop-hook output. Update the test case to fix test suite failure.
d6d4797 Added the ability to restrict breakpoints by function name, function regexp, selector etc to specific source files. Added SB API's to specify these source files & also more than one module. Added an "exact" option to CompileUnit's FindLineEntry API.
850ac6e Remove the Stop Hooks / End Stop Hooks lines before/after running the stop-hooks. I've been living on lldb with some stop-hooks defined for the past week and the five extra lines of output on every stop is really detracting from the usefulness of this feature.
fb66bb5 LookupAddressInModule: Remove a couple of the extra newlines output at the end of 'image lookup' / 'image lookup -v'.
cacedfb Watchpoint IDs and ID Ranges are not quite the same as Breakpoint IDs and ID Ranges. Add eArgTypeWatchpointID and eArgTypeWatchpointIDRange to the CommandArgumentType enums and modify the signature of CommandObject::AddIDsArgumentData() from:
73d8eaf Added missing forward declarations for SBFileSpecList and SBInstructionList.
01acfa7 Add initial implementation of watchpoint commands for list, enable, disable, and delete. Test cases to be added later.
567e7f3 Converted the lldb_private::Process over to use the intrusive shared pointers.
16ccbfd Fix printf call in SearchFilterByModuleList::GetDescription.
a8428a4 Fixed a problem with the IR interpreter that caused it to generate result variables that were not bound to their underlying data. This allowed the SBValue class to use the interpreter (if possible).
043f8c2 StopInfoWatchpoint should override the StopInfo::ShouldStop() virtual method and delegate to the WatchpointLocation object to check whether it should stop and allow it to update the hit count, among other bookkeepings.
a253c93 Fixed two printf format errors.
6a64bbf The first part of a fix for being able to select an architecture slice from a file when the target has a triple with an unknown vendor and/or OS and the slice of the file itself has a valid vendor and/or OS.
03c8ee5 Add a new breakpoint type "break by source regular expression". Fix the RegularExpression class so it has a real copy constructor. Fix the breakpoint setting with multiple shared libraries so it makes one breakpoint not one per shared library. Add SBFileSpecList, to be used to expose the above to the SB interface (not done yet.)
f0734cc Fix comment typo.
0576c24 A little refactoring of the way to add break IDs or ID ranges as command argument data to the command argument entry. Add a static helper function:
da5a802 Add some watchpoint maintenance methods to the Target class. Plus some minor changes to the WatchpointLocationList and WatchpointLocation classes.
e09e254 One last printf-style call cleanup.
6cf6c47 Fixed a problem where expressions would attempt to allocate memory in a process that did not support expression execution. Also improved detection of whether or not a process can execute expressions.
7e5fa7f Update declarations for all functions/methods that accept printf-style stdarg formats to use __attribute__ format so the compiler can flag incorrect uses. Fix all incorrect uses. Most of these are innocuous, a few were resulting in crashes.
0ae3164 Add four new expectedFailre decorators to new failures most likely due to r139772 check-in.
95b7b43 Change Error::SetErrorStringWithFormat() prototype to use an __attribute__ format so the compiler knows that this method takes printf style formatter arguments and checks that it's being used correctly. Fix a couple dozen incorrect SetErrorStringWithFormat() calls throughout the sources.
7d0e364 Add GetByIndex() methods to the WatchpointLocationList class to facilitate iteration through the watchpoint locations by index.
d466ebc The r139982 patch has a bug by using the constant "x86_AVX_STATE64". Patch by Filipe.
e40b642 Don't put modules for .o files into the global shared module list. We used to do this because we needed to find the shared pointer for a .o file when the .o file's module was needed in a SymbolContext since the module in a symbol context was a shared pointer. Now that we are using intrusive pointers we don't have this limitation anymore since any instrusive shared pointer can be made from a pointer to an object all on its own.
987c7eb Adopt the intrusive pointers in:
02e210c Removed the function:
6e0101c Convert lldb::ModuleSP to use an instrusive ref counted pointer. We had some cases where getting the shared pointer for a module from the global module list was causing a performance issue when debugging with DWARF in .o files. Now that the module uses intrusive ref counts, we can easily convert any pointer to a shared pointer.
2080155 Added more logging, and renamed FPR to FPU in a the register set/flavor enum.
48e8373 Correctly handle the when we the 'G' packet fails. There were cases where we were returning no error even though this packet was failing.
1a3e9e6 Make sure to print out register names when reading registers and also be able to display 256 byte registers.
36889ad Foe x86_64/i386, piggyback the hardware index of the fired watchpoint in the exception data sent back to the debugger. On the debugger side, use the opportunity during the StopInfoMachException::CreateStopReasonWithMachException() method to set the hardware index for the very watchpoint location.
26ec874 Fix typo.
f9f3302 Add comment.
10b12b3 Add a declaraion info member field to the WatchpointLocation class. Modify CommandObjectFrame.cpp to populate this field when creating a watchpoint location. Update the test case to verify that the declaration info matches the file and line number.
6a45148 Minor change for output message (less is better).
178c8d9 To be more paranoid, check cmd_output before searching in it.
6a4e087 Rephrase the checkDsymForUUIDIsNotOn() a bit so that in the normal case where automatic lookup and cacheing of dSYMs is not enabled, the 'defaults read com.apple.DebugSymbols' output is not shown.
5114e88 Tighten up the 'log enable lldb unwind' printing for the arm emulate instruction unwinder so you can leave it on by default and not be overwhelmed. Set verbose mode to get the full story on how the unwindplans were created.
2891bb0 Add a check for the test driver to make sure that, on Mac OS X, the automatic lookup and caching of dSYMs is not turned on before running the test suite.
cc7de48 Untabify and fix indentation.
cbecb9a Fix wrong test method name.
6a388c9 Untabify and fix indentations. Tabs are bad.
2e1f447 Add fuzz calls for added API methods: FindFirstType(), FindTypes(), and GetSourceManager().
12a8ecd Add fuzz calls to newly added methods: GetAsync() and SetSelectedTarget(SBTarget).
c0c5324 Track whether a process was Launched or Attached to. If Attached, the detach when the debugger is destroyed, rather than killing the process. Also added a Debugger::Clear, which gets called in Debugger::Destroy to deal with all the targets in the Debugger. Also made the Driver's main loop call Destroy on the debugger, rather than just Destroying the currently selected Target's process.
dbcf98c Track whether a process was Launched or Attached to. If Attached, the detach when the debugger is destroyed, rather than killing the process. Also added a Debugger::Clear, which gets called in Debugger::Destroy to deal with all the targets in the Debugger. Also made the Driver's main loop call Destroy on the debugger, rather than just Destroying the currently selected Target's process.
58c66e2 Add a simple watchpoint test to exercise watchpoint creation followed by watchpoint hit events.
6c43c12 Add cleanup of watchpoint locations during Target::DeleteCurrentProcess().
97ad47f Fixed a problem where the symbol context was not being initialized properly in the absence of a process.
f7649bb Fixed a problem where the expression parser would attempt to obtain information from the process even in cases where the process isn't available.
3823c84 Fixed indentation.
a1cb0f4 Add comment regarding method call to DNBArchProtocol::NotifyException().
47dc457 This patch modifies the expression parser to allow it to execute expressions even in the absence of a process. This allows expressions to run in situations where the target cannot run -- e.g., to perform calculations based on type information, or to inspect a binary's static data.
ba3d698 Modify MachThread::NotifyException() to allow the arch specific protocol to process the passed in (MachException::Data &)exc first before possible reassignment of the member m_stop_exception with exc. This allows lldb to stop at the watchpoint of a simple test program.
0d7f777 Take out all the separate places in Attach where we were getting the target architecture, and move that but of functionality into CompleteAttach.
ee940e2 Change the "attach" command to always wait synchronously for the target to stop. It's not very useful to return the prompt in mid-attach, and it makes reporting the result of the attach hard to do.
65ac966 Fix ArchSpec::operator== to take the Triple into account as well as the Core. Also make the constructors explicit.
25dcbeb Fix ArchSpec::operator== to take the Triple into account as well as the Core. Also make the constructors explicit.
819dd5e Have the FuncUnwinder object request & provide an architecture-defined UnwindPlan for unwinding from the first instruction of an otherwise unknown function call (GetUnwindPlanArchitectureDefaultAtFunctionEntry()).
89798cc Set the OS in the triple correctly in response to the qHostInfo packet.
22a56cc Fix a bug where re-use of the same existing target-wise watchpoint did not work correctly.
5b2fc57 Add logging to Target::CreateWatchpointLocation() and fix some bug of using the wrong variable. Plus simplify WatchpointLocation::Dump() output.
72095e8 If we haven't gotten the architecture of the process we're attaching to by the time we get to the AttachCompletionHandler, do it before completing the attach.
87ff53b Add comments.
0ff8162 Update I386 DNB impl to fix the same errors as DNBArchImplX86_64: ('==' instead of '=') and (by value instead of by reference).
69b6ec8 Watchpoint WIP:
83dd203 Adding "-n", "-p" and "-w" flags to the lldb command-line tool to allow attaching from the command line.
61286a5 Get the address and the size of the variable for passing to the Target::CreateWatchpointLocation() method.
57067a0 Fixed some incorrect return values.
9bf1199 Fix compiler warning.
95f41b8 Add trivial implementation for GetDescription().
08b8ed4 In ThreadList::GetSelectedThread, handle the case where we have no valid threads - can happen if attaching to a process fails in a certain way.
38e44ec Change the macosx Host::FindProcesses() to include all processes (running under any uid) if lldb is being run as root. It might be better to handle this up at the ProcessInstanceInfoMatch class with its m_match_all_users ivar instead of down here...
cc63746 SBSourceManager now gets the real source manager either from the Debugger or Target. Also, move the SourceManager file cache into the debugger so it can be shared amongst the targets.
649d3f1 Remove an unnecessary 'else { ... }', which adds to vertical as well as horizontal spans, from CommandObjectFrame::Execute().
34bbf85 Watchpoint WIP:
144188b Huge memory and performance improvements in the DWARF parser.
ca3e91a Fix indentations, add some comments.
b50787d Added GDB/LLDB commands for the "target stop-hook add" command.
3066b25 Fix a bug in OptionGroupWatchpoint.cpp where the '-w' option arg parsing result was not checked to effect an early error return.
d996d0c Fixed the header guards.
dad26a8 Fixed the logging output to be done consistently across all plug-ins. Added a new log category for DWARF called "aranges" to log the parsing of address ranges.
31cf0e7 Changed to using an "operator bool" instead of an "operator void*" and avoid returning a pointer to the current object. In the new "operator bool" implementation, check the filename object first since many times we have FileSpec objects with a filename, yet no directory.
86c2e74 Fixed up the comments in the headerdoc to match the current implementation of how ConstString objects work, and removed the duplicate and out of date comments that were in the cpp file.
448bd2f Fixes for Symtab.cpp to take advantage of the new unique C string map changes that were just submitted.
95decca Added extra calls to the UniqueCStringMap to allow it to be used more efficiently when it contains a large number of items. Since the map is actually a vector of "const char *" and type T values, it will double in size every time you append to it. The extra added functions allow the collection to be sized to fit the data after all entries have been appended, and lookups by name or by regex have been built in to the class to allow efficient lookup.
d6edcb5 Don't skip the application specific ~/.lldbinit file when the program name is "lldb". So currently when you startup any application and you have not specified that you would like to skip loading init files through the API or from "lldb" options, then LLDB will try and load:
439d033 A little bit of cleanup; set watch_mode to eWatchInvalid at the OptionParsingStarting() lifecycle point.
cfbf7fe Convert OptionGroupVariable.cpp to use the arraysize() template function, as well.
707e340 Quick fixes to the PE COFF file loader.
d1f8705 Add comment.
4003f57 Refactoring: replace a bunch of static array size computation or hardcoded constant with a template function 'arraysize(static_array)', defined in Utils.h.
3b23d20 Renaming a bulk of method calls from Get() to something more descriptive
58dba3c Add OptionGroupWatchpoint.cpp/.h (preparatory work) for hooking up watchpoint to the 'frame variable' comand. To watch a variable for read/write, issue:
d68e089 Added the ability to introspect types thourgh the public SBType interface.
0a44b0d Reset the debug status register, only if necessary, before we resume, which saves unnecessary traffic to the kernel.
48a5e85 Fix compiler warnings for GetGDBStoppointType().
e9f4982 Added first pass at PE COFF file reading support. It parses the sections correctly, symbols are coming soon. It also needs to be 32/64 bit hardened with more testing.
1ac6d1f Adding two new options to the 'help' command: --show-aliases (-a) shows aliases for commands, as well as built-in commands --hide-user-defined (-u) hides user defined commands by default 'help' without arguments does not show aliases anymore. to see them, add --show-aliases to have only built-in commands appear, use 'help --hide-user-defined' ; there is currently no way to hide built-in commands from the help output 'help command' is not changed by this commit, and help is shown even if command is an alias and -a is not specified
c39793d Fixed the error message:
2e7711c Objective-C runtime wrapper
271568f Fixing an issue with Python commands defined interactively
f7908e6 Patch from Pilipe to allow "target create" on the remote-macosx platform!
01b79d2 FreeBSD platform patch from Filipe!
520e7fe Basic infrastructure code to exploit malloc stack logging as available on Mac OS X to track the allocation history of pointers on the target process
b14ec34 Patch from Filipe!
677aabd Remove code rot (unused class OptionGroupFrameVariable) from CommandObjectFrameVariable. Plus minor indentation change.
fdf24ef Move the SourceManager from the Debugger to the Target. That way it can store the per-Target default Source File & Line. Set the default Source File & line to main (if it can be found.) at startup. Selecting the current thread & or frame resets the current source file & line, and "source list" as well as the breakpoint command "break set -l <NUM>" will use the current source file.
30e8d97 Watchpoint WIP: on the debugger side, create an instance of either StopInfoTrace or StopInfoWatchpoint based on the exc_sub_code, as well.
aac59fe Added help on stack frame selection compared to GDB and corrected the register command help to match the current LLDB.
d8b7248 Added comments about exception code.
fc89093 Add logic to the DNBArchImplX86_64/DNBArchImplI386::NotifyException() callback method in order to distinguish the real single step exception from a watchpoint exception which uses the same exc_type of EXC_BREAKPOINT and exc_code of EXC_I386_SGL.
d9fa9d7 "frame select -r" should return an error if you are already at the top of the stack & try to go up or at the bottom and try to go down.
0c5c9a2 other documentation changes
9e4102f documentation changes (WIP)
2c45f54 Add logic to MachThreadList::GetThreadID() for the use case of setting a watchpoint (MachThreadList::EnableHardwareWatchpoint()) where the watchpoint is not associated with a thread and the current thread, if set, is returned, otherwise we return the first thread.
390a0e7 Minor change: compare the return val of DNBWatchpointSet() against INVALID_NUB_WATCH_ID to determine its validity.
716a628 Refactoring of Get() methods in FormatManager/FormatCategory to have explicative names and return shared-pointers instead of bools Reduced the amount of memory required to avoid loops in DumpPrintableRepresentation() from 32 bits down to 1 bit - Additionally, disallowed creating summary strings of the form ${var%S} which did nothing but cause endless loops by definition
21900fb Fill out implementation of Enable/DisableWatchpoint() for ProcessGDBRemote class (Not Tested Yet). Also update the signature of WatchpointLocation::SetEnable() to take a bool as input arg.
d86218a Test should print to stdout only if self.TraceOn() is True.
9a3c2a5 Add a data type WatchpointLocationList to the repository. A Target contains an instance of watchpoint location list. Also add a typefed for WatchpointLocationSP to lldb-forward-rtti.h.
31d8918 DNBBreakpoint::SetEnabled() should take a bool, not a uint32_t, as its input argument. Plus for watchpoint related functions, add new macros INVALID_NUB_WATCH_ID and NUB_WATCH_ID_IS_VALID and use them, instead.
9154480 Redesign of the interaction between Python and frozen objects: - introduced two new classes ValueObjectConstResultChild and ValueObjectConstResultImpl: the first one is a ValueObjectChild obtained from a ValueObjectConstResult, the second is a common implementation backend for VOCR and VOCRCh of method calls meant to read through pointers stored in frozen objects ; now such reads transparently move from host to target as required - as a consequence of the above, removed code that made target-memory copies of expression results in several places throughout LLDB, and also removed code that enabled to recognize an expression result VO as such - introduced a new GetPointeeData() method in ValueObject that lets you read a given amount of objects of type T from a VO representing a T* or T[], and doing dereferences transparently in private layer it returns a DataExtractor ; in public layer it returns an instance of a newly created lldb::SBData - as GetPointeeData() does the right thing for both frozen and non-frozen ValueObject's, reimplemented ReadPointedString() to use it en lieu of doing the raw read itself - introduced a new GetData() method in ValueObject that lets you get a copy of the data that backs the ValueObject (for pointers, this returns the address without any previous dereferencing steps ; for arrays it actually reads the whole chunk of memory) in public layer this returns an SBData, just like GetPointeeData() - introduced a new CreateValueFromData() method in SBValue that lets you create a new SBValue from a chunk of data wrapped in an SBData the limitation to remember for this kind of SBValue is that they have no address: extracting the address-of for these objects (with any of GetAddress(), GetLoadAddress() and AddressOf()) will return invalid values - added several tests to check that "p"-ing objects (STL classes, char* and char[]) will do the right thing Solved a bug where global pointers to global variables were not dereferenced correctly for display New target setting "max-string-summary-length" gives the maximum number of characters to show in a string when summarizing it, instead of the hardcoded 128 Solved a bug where the summary for char[] and char* would not be shown if the ValueObject's were dumped via the "p" command Removed m_pointers_point_to_load_addrs from ValueObject. Introduced a new m_address_type_of_children, which each ValueObject can set to tell the address type of any pointers and/or references it creates. In the current codebase, this is load address most of the time (the only notable exception being file addresses that generate file address children UNLESS we have a live process) Updated help text for summary-string Fixed an issue in STL formatters where std::stlcontainer::iterator would match the container's synthetic children providers Edited the syntax and help for some commands to have proper argument types
edda23f Change the signature of WatchpointLocation ctor so that the second param becomes 'size_t size', instead of 'lldb::tid_t tid'. Pass size to the StoppointLocation ctor as well.
5b4b00f Watchpoint work in progress:
d74270e Added alpha .debug_names and .debug_types support in the DWARF parser.
5c3861d Added the ability for DWARF locations to use the ABI plug-ins to resolve register names when dumping variable locations and location lists. Also did some cleanup where "int" types were being used for "lldb::RegisterKind" values.
4ec7b85 Added files I forget to checkin with my last checkin.
c8cf5e2 Added support for accessing and loading our new .debug_names and .debug_types DWARF accelerator table sections to the DWARF parser. These sections are similar to the .debug_pubnames and .debug_pubtypes, but they are designed to be hash tables that are saved to disc in a way that the sections can just be loaded into memory and used without any work on the debugger side. The .debug_pubnames and .debug_pubtypes sections are not ordered, contain a copy of the name in the section itself which makes these sections quite large, they only include publicly exported names (so no static functions, no types defined inside functions), many compilers put different information in them making them very unreliable so most debugger ignore these sections and parse the DWARF on their own. The tables must also be parsed and sorted in order to be used effectively. The new sections can be quickly loaded and very efficiently be used to do name to DIE lookups with very little up front work. The format of these new sections will be changing while we work out the bugs, but we hope to have really fast name to DIE lookups soon.
97b8f66 Forgot to write out the NULL terminator when putting C string value into a data using DataEncoder.
d84cc04 Added a DataEncoder class for the new IR evaluation expression parser so it can reserve a block of memory and store stuff into it.
d2ad7fd disassemble with no arguments disassembles at the pc. Also got "disassemble -f" to work, that had gotten broken at some point in the past.
fe98a2e Renaming: from IsVacantWatchpoint() to IsWatchpointVacant().
0875a97 Renamed the helper method to ClearWatchpointHits() for clarity of its purpose.
9d544f4 Add a couple of helper methods to check/clear the debug status register which contains the watchpoint hit information.
d111994 Fix the shift amount applied to size_and_rw_bits() for debug control register, which did not take into account the hardware index.
503b407 Update comments.
25d2818 Watchpoint work in progress: add helper methods to DNB arch impl for I386 to implment Enable/DisableHardwareWatchpoint.
738fe1b Watchpoint work in progress: add helper methods to DNB arch impl for X86_64 to implment Enable/DisableHardwareWatchpoint.
eb0eae2 Add stubs of incomplete watchpoint implementation with "FIXME" markers.
e393568 Added the debug registers for i386 and x86_64 in preparation for watchpoints.
0605942 Remove an extra break statement.
6b0f149 Patch by Filipe for FreeBSD platform plugin!
169c5fb Fix a bunch of places where we were passing Stream *'s but were never checking them for NULL. Pass a reference instead.
2a19ef9 Don't change the host's environment, just append our Python Directory directly to the one in sys.
994aba0 Hold onto a shared pointer to the frame CommandObjectFrameVariable::Execute is analyzing so it won't get deleted on us if a formatter runs code.
62acb34 Micro-optimization: Update the shift amount only when needed.
2b5b8d2 Update the test case in light of recent change of LLDB-Info.plist to track Apple Generic Version number from the Xcode project file.
811b9c5 Fixed an assertion that could happen if we happened to parse a mach-o object file that had a symbol that had a section specified where the section had zero size. We now honor this section definition for the symbol and don't assert anymore.
5454892 Move DIE location reporting into the DWARFDebugInfo class, use it from there in SymbolFileDWARF::ParseType (and eventually in other interesting places as well.)
2b1b411 Added code to test hash bucket sizes for an DWARF index that we can write to a file.
6033bed Add a new attribute self.lldbHere, representing the fullpath to the 'lldb' executable built locally from the source tree. This is distinguished from self.lldbExec, which can be used by test/benchmarks to measure the performances against other debuggers.
9ecdaac Add logging to SymbolFileDWARF::ParseType so that we can tell the type/comp_unit/obj_file were being processed when something goes wrong...
914e718 Modify the impl of ThreadList::GetSelectedThread() so that it tries to fetch the m_selected_tid thread first, check to see if it is valid (might be null if the thread just exited), and if not select/return the 0th thread instead.
222df17 Modify the loggings output oracle to fix test suite failure, after the recent change to CommandInterpreter.cpp.
2396777 Make ThreadList::GetSelectedThread() select and return the 0th thread if there's no currently selected thread. And update the call sites accordingly.
451d02b Initializes (uint64_t)buf variable, patch by Filipe Cabecinhas!
0a77f90 Fix compilation error with DEBUG_STACK_FRAMES defined, patch by Filipe Cabecinhas! With some slight modification.
928fafa Make the CFBundleShortVersionString and CFBundleVersion automatically track the Apple Generic Version number from the Xcode project.
bc088c7 Change old "settings set frame-prompt" and thread-prompt to frame-format and thread-format.
9553673 Emit an error message if we're unable to write a value to a register. (in addition to the previous error message if the value could not be parsed as a numbe). These both generate reasonable errors now - reg write rip 0x500000000000000000000a reg write rip 0x5jjjj
24c991c Include lldb/commands as a valid logging type in the 'log list' output.
32b4f14 Fix so we don't create C++ classes for all objective C classes when we have a objective C++ source file.
24429c0 The Compilation Unit language was being stored in a variable called "class_language"... Changed that to "cu_language".
319df48 Remove skip decorator now that crash has been fixed. Fix a compie warning for main.cpp.
036fa90 Fixed a bug where the target for an expression was not set if the containing function could not be found. This caused LLDB to crash later in expression parsing.
b7058c5 Pretty print the run options for dumpSessionInfo(self) client.
909b7b7 Fix compile warning.
7522961 Don't display the stdout if not in TraceOn(), i.e, '-t option, mode.
4ecbe3d The plugin impl of getCompiler() should be in unison with the Makefile.rules change.
5513256 Remove the expectedFailure decorator. The test has been passing for some time now.
37ef7c7 Moved the test code for Python commands out of the test case for aliases, into its own dedicated test case (one fill was still lurking in the old folder)
46623be Moved the test code for Python commands out of the test case for aliases, into its own dedicated test case
3db17ae Documentation edits: correcting typos, adding information and general tweaks for readability
097e555 Documentation on dynamic types (WIP)
de51233 Minor documentation changes (WIP)
7e65503 More documentation changes (WIP)
1bcd138 Patch by Filipe to build lldb usng 'make'!
92f7572 Uniquefy the various data-formatter test class names so that:
b0d9796 Skip these two cases temporarily while investigating the crash on OSX Lion with clang as the compiler.
93c7d37 Make clang the default compiler for building the test programs.
caf798c Fixing commas in enums (build breaker on GCC) as reported by Filipe Cabecinhas
ef1923d Improved the user-friendliness of errors shown by the summary feature in certain areas Renamed format "signed decimal" to be "decimal". "unsigned decimal" remains unchanged: - the name "signed decimal" was interfering with symbol %S (use summary) in summary strings. because of the way summary strings are implemented, this did not really lead to a bug, but simply to performing more steps than necessary to display a summary. this is fixed. Documentation improvements (more on synthetic children, some information on filters). This is still a WIP.
2431244 Added support for persistent types to the expression parser. You can use a persistent type like this:
242ffb8 Short option for --summary-string in 'type summary add' is now -s. This might be a breaking change for those who have summaries defined.
adec24d Add some expected failure decorators with radar numbers.
2c6a3d8 Additional code cleanups ; Short option name for --python-script in type summary add moved from -s to -o (this is a preliminary step in moving the short option for --summary-string from -f to -s) ; Accordingly updated the test suite
d587a58 Separated FormatNavigator and FormatManager in two different files ; moved FormatCategoryItem enum out of FormatManager.h as a debugger-wide lldb_private enum ; minor style cleanups
c01c05c Restored the version of LLVM that we previously rolled back, and the testcase that the rollback broke.
17f3d05 Finishing the renaming from "MacOSX-Kernel" to "Darwin-Kernel".
49f7e5b Renaming "MacOSX-Kernel" to "Darwin-Kernel". The file contents and project commit will come shortly after this commit.
24b81e3 Fix the 'target variable' help syntax to output one or more <variable-name>'s. Add a simple test case for that.
f530bfe Check the timesatmps of includees python-extensions.swig and python-wrapper.swig and force a re-SWIG if newer than the SWIG-generated LLDBWrapPython.cpp file.
0be2e9b More cleanups ; Separated implementation of FormatManager from class DataVisualization as a front-end by using separate .h/.cpp files - Final aim is to break up FormatManager.h/cpp into several separate files
4dfa511 Don't let Python write its .pyc files, that's not really polite...
b0968f5 Code cleanup and refactoring (round 4): - FormatCategories now are directly mapped by ConstString objects instead of going through const char* -> ConstString -> const char* - FormatCategory callback does not pass category name anymore. This is not necessary because FormatCategory objects themselves hold their name as a member variable
c70f3f5 Modify test cases to use 'target variable' to display global variables.
960691f - Support for Python namespaces: If you have a Python module foo, in order to use its contained objects in LLDB you do not need to use 'from foo import *'. You can use 'import foo', and then refer to items in foo as 'foo.bar', and LLDB will know how to resolve bar as a member of foo. Accordingly, GNU libstdc++ formatters have been moved from the global namespace to gnu_libstdcpp and a few test cases are also updated to reflect the new convention. Python docs suggest using a plain 'import' en lieu of 'from-import'.
278bc67 Fixing a startup error
68506fb Exception-awareness for gnu_libstdcpp formatters ; Documentation update
37f962e Added a new plug-in type: lldb_private::OperatingSystem. The operating system plug-ins are add on plug-ins for the lldb_private::Process class that can add thread contexts that are read from memory. It is common in kernels to have a lot of threads that are not currently executing on any cores (JTAG debugging also follows this sort of thing) and are context switched out whose state is stored in memory data structures. Clients can now subclass the OperatingSystem plug-ins and then make sure their Create functions correcltly only enable themselves when the right binary/target triple are being debugged. The operating system plug-ins get a chance to attach themselves to processes just after launching or attaching and are given a lldb_private::Process object pointer which can be inspected to see if the main executable, target triple, or any shared libraries match a case where the OS plug-in should be used. Currently the OS plug-ins can create new threads, define the register contexts for these threads (which can all be different if desired), and populate and manage the thread info (stop reason, registers in the register context) as the debug session goes on.
b269ed0 Fix typos in comment.
eee701f Use os.walk(), available since 2.3, instead of os.path.walk(), removed in 3.0, to walk the directory tree. Plus, we can concentrate only on leaf nodes, i.e., files.
872959b Further fix for SWIG interoperability; making sure the Release() method of SBCommandReturnObject is called at all times
98c4232 No need to look further if the file is a symbolic link. Look for the real file. Plus add some comments.
3370f0c Fixed some SWIG interoperability issues
b355828 Fixed an issue where even if the communication object had Clear() called on it, it could try and call through to an installed callback.
d8b9b06 Added the ability to create a SBCommandReturnObject object from a pointer and also to later release the ownership of the pointer object. This was needed for SWIG interaction.
13a54a1 Taking care of an issue with using lldb_private types in SBCommandInterpreter.cpp ; Making NSString test case work on Snow Leopard ; Removing an unused variable warning
6f30287 - Now using ${var} as the summary for an aggregate type will produce "name-of-type @ object-location" instead of giving an error e.g. you may get "foo_class @ 0x123456" when typing "type summary add -f ${var} foo_class" - Added a new special formatting token %T for summaries. This shows the type of the object. Using it, the new "type @ location" summary could be manually generated by writing ${var%T} @ ${var%L} - Bits and pieces required to support "frame variable array[n-m]" The feature is not enabled yet because some additional design and support code is required, but the basics are getting there - Fixed a potential issue where a ValueObjectSyntheticFilter was not holding on to its SyntheticChildrenSP Because of the way VOSF are being built now, this has never been an actual issue, but it is still sensible for a VOSF to hold on to the SyntheticChildrenSP as well as to its FrontEnd
40ad91f Add a Python script to locate each binary file under a root directory which matches some pathname pattern and to invoke lldb-disasm.py on the binary file to disassemble its symbols. The number of symbols can be specified by, for example, '-n 10000', to specify 10,000 symbols to disassemble for each module. By default, only 1000 symbols from each module are disassembled.
611b7e9 Revert the workaround patch in the last check in. With the local patch to LLVM, it is no longer necessary.
b66b112 Fix TypeError exception for re.compile().
9aac285 Whoops, accidentally committed my local scheme.
cbfc0ea Refined the rollback to LLVM, picking up a newer revision and adding a patch that fixes an AsmParser crash on ARM.
2f2c6fb More thorough fix for the spaces-in-typename issue
7c9136b Minor change for the @expectedFailureClang logic. For the non-clang test failure, re-raise the exception to get more stack trace information.
d3a86a2 Third round of code cleanups: - reorganizing the PTS (Partial Template Specializations) in FormatManager.h - applied a patch by Filipe Cabecinhas to make LLDB compile with GCC Functional changes: - fixed an issue where command type summary add for type "struct Foo" would not match any types. currently, "struct" will be stripped off and type "Foo" will be matched. similar behavior occurs for class, enum and union specifiers.
65040cb Add a decorator for marking clang only expectedFailure. Use it for the test_step_over_3_times_with_dsym/dwarf() test cases in TestThreadAPI.py by decorating it with @expectedFailureClang.
7044f1b Revert the previous addition of expectedFailure decorators, it was a mistake.
0c8e91e Add expectedFailure decorator. Failed possibly due to rollback of llvm/clang.
8ddc802 Add an option (-p regexp-pattern) to specify the regular expression symbol pattern we're interested in disassembling.
4203100 Apply some workaround for known crashers.
d7e5329 Add an option '-q' to have quiet disassembly by not printing out the disassembled result. This could be useful by reducing the strain on standard output.
047eea6 Because of disassembler crashes, I rolled back LLVM to pull in the older ARM disassembler. I also modified our build scripts to support building LLVM from one SVN revision and Clang from another.
1c61743 Second round of code cleanups: - reorganizing classes layout to have public part first Typedefs that we want to keep private, but must be defined for some public code to work correctly are an exception - avoiding methods in the form T foo() { code; } all on one-line - moving method implementations from .h to .cpp whenever feasible Templatized code is an exception and so are very small methods - generally, adhering to coding conventions followed project-wide Functional changes: - fixed an issue where using ${var} in a summary for an aggregate, and then displaying a pointer-to-aggregate would lead to no summary being displayed The issue was not a major one because all ${var} was meant to do in that context was display an error for invalid use of pointer Accordingly fixed test cases and added a new test case
536f633 Fix the "command alias" help string to make clear that the $<N> substitutions should be whole words in the output command.
f501c59 First round of code cleanups: - all instances of "vobj" have been renamed to "valobj" - class Debugger::Formatting has been renamed to DataVisualization (defined in FormatManager.h/cpp) The interface to this class has not changed - FormatCategory now uses ConstString's as keys to the navigators instead of repeatedly casting from ConstString to const char* and back all the time Next step is making the same happen for categories themselves - category gnu-libstdc++ is defined in the constructor for a FormatManager The source code for it is defined in gnu_libstdcpp.py, drawn from examples/synthetic at compile time All references to previous 'osxcpp' name have been removed from both code and file names Functional changes: - the name of the option to use a summary string for 'type summary add' has changed from the previous --format-string to the new --summary-string. It is expected that the short option will change from -f to -s, and -s for --python-script will become -o
074e3b6 New category "gnu-libstdc++" provides summary for std::string and synthetic children for types std::map, std::list and std::vector The category is enabled by default. If you run into issues with it, disable it and the previous behavior of LLDB is restored ** This is a temporary solution. The general solution to having formatters pulled in at startup should involve going through the Platform. Fixed an issue in type synthetic list where a category with synthetic providers in it was not shown if all the providers were regex-based
e5e34cb When defining a scripted command, it is possible to provide a docstring and that will be used as the help text for the command If no docstring is provided, a default help text is created LLDB will refuse to create scripted commands if the scripting language is anything but Python Some additional comments in AppleObjCRuntimeV2.cpp to describe the memory layout expected by the dynamic type lookup code
dc4428d Add "--" before providing the file & command args when launching lldb from the command line.
cf0de26 Better help string for "lldb -- file arg1 arg2..."
6b1596d Changes to Python commands: - They now have an SBCommandReturnObject instead of an SBStream as third argument - The class CommandObjectPythonFunction has been merged into CommandObjectCommands.cpp - The command to manage them is now: command script with subcommands add, list, delete, clear command alias is returned to its previous functionality - Python commands are now part of an user dictionary, instead of being seen as aliases
6ae2544 Document how to pass program args to lldb command-line.
c5d97ed Bumped Xcode project versions for lldb-73 and debugserver-144.
770683d Add comment about recent change.
e90a10e Comment change.
9e643db Add comment on known restrictions of the current implementation.
13fb657 The redo script did not take into account the compiler and architecture configuration of the failed tests.
d6c7e5c Take clang output into account.
4d30840 Re-enable the test for ValueAsUnsigned on a register Value.
6c3e4af Fixed an issue where we could end up creating multiple C++ methods for a function depending on how the DWARF was created. Now we parse the class type from the definition, and all methods that use DW_AT_specification or DW_AT_abstract_origin attributes to point to the definition, now won't create duplicate entries. This is in response to how clang++ creates much different DWARF than gcc.
3b276da Fixed the logging output that appears when doing a:
ca2516d Fixed a performance problem where functions were being searched for in too heavyweight a way. Now, when asking for the address of a function, the expression parser just asks for a corresponding data symbol.
8339f98 Fix the test suite error of:
c2a2825 Python commands: It is now possible to use 'command alias --python' to define a command name that actually triggers execution of a Python function (e.g. command alias --python foo foo_impl makes a command named 'foo' that runs Python function 'foo_impl') The Python function foo_impl should have as signature: def foo_impl(debugger, args, stream, dict): where debugger is an object wrapping an LLDB SBDebugger args is the command line arguments, as an unparsed Python string stream is an SBStream that represents the standard output dict is an internal utility parameter and should be left untouched The function should return None on no error, or an error string to describe any problems
d6bcc0d Fixed register value objects to be able to return their values as unsigned and signed integers.
f733b93 Allow for a cpu subtype of 4 to still be recognized as an x86_64 processor; we may get this subtype ("CPU_SUBTYPE_X86_ARCH1") back when starting a kdp session.
6ac9e54 Fix two logic errors uncovered by the static analyzer.
baafee2 Modify the expected substrings to accomodate clang, now that rdar://problem/8516141 has been fixed.
cd1df5a Forgot to initialize the self.__skipped__ attribute lldbtest.Base.
b2fbdad Fixed an issue where a variable that was a pointer whose location was in a register would not be able to dereference children when displaying "*var" or the derefence of the variable.
c2da8eb Add missing check for non-NULL frame_sp.
f5b8909 Test driver should also report skipped tests because there were cases when tests were skipped due to incorrect skip-logic.
293a7b3 One-line fix for a possible spurious truncation warning
772c529 Removed debug printf that was left in.
161cdf6 Add new SBAddress APIs to the fuzz tests.
19030d8 Refactoring of ValueObject::DumpValueObject and 'frame variable', 'target variable' commands to use an Options object instead of passing an ever-increasing number of arguments to the DumpValueObject() method, with the ultimate aim of making that call private implementation
a2275b3 Objective-C runtime now caches resolved ISA information for increased efficiency
39f54e5 Patch from Matt Johnson that cleans up usage of APInt to keep GCC 4.5.2 happy and also to not use a deprecated llvm API.
a4e0dad Added the ability to use llvm::APInt class to view any integers that are larger than a 8 bytes. We can now display signed decimal, unsigned decimal, octal, and binary (we could already view hex before this fix).
3ad4da0 Factor out the code that parses ObjC Method names into a static method in ObjCLanguageRuntime. Add the category-free name of symbols to the Symtab name-to-index list.
e1db7c7 Bumped Xcode project versions for lldb-72 and debugserver-143.
7bbebaf Remember to restore the frame in the exe_ctx passed in to RunThreadPlan. Also, default "source_init_file" to False in the version of SBDebugger::Create so that we don't pick up the init file in Python.
be85f0b Add a simple test case to exercise the SBDebugger.CreateTargetWithFileAndTargetTriple() API.
e36a35c Test case for changing ValueObjects with SBValue::SetValueFromCString.
4386675 Modify the skipUnless() logic to work for OSX Lion.
558dd5b Add a version of SBDebugger::Create which allows us to specify whether to source in the init files or not.
db4be60 Fix a test driver bug where multiple filter specs (through the -f TestClassName.test_method_name command line option) belonging to the same Test*.py file are ignored, except for the first one.
574c3d6 Make ValueObject::SetValueFromCString work correctly. Also change the SourceInitFile to look for .lldb-<APPNAME> and source that preferentially if it exists. Also made the breakpoint site report its address as well as its breakpoint number when it gets hit and can't find any the associated locations (usually because the breakpoint got disabled or deleted programmatically between the time it was hit and reported.) Changed ThreadPlanCallFunction to initialize the ivar m_func in the initializers of the constructor, rather than waiting to initialize till later on in the function. Fixed a bug where if you make an SBError and the ask it Success, it returns false. Fixed ValueObject::ResolveValue so that it resolves a temporary value, rather than overwriting the one in the value object.
e020716 Fixed an incorrect static analyzer fix.
7aa04f6 Removed an initialization that wasn't needed.
e4fd440 Update the SBAddress.i Python interface file to the latest SBAddress.h, and add some docstrings.
c51ffbf We were leaking a stack frame in StackFrameList in Thread.cpp which could cause extra shared pointer references to one or more modules to be leaked. This would cause many object files to stay around the life of LLDB, so after a recompile and rexecution, we would keep adding more and more memory. After fixing the leak, we found many cases where leaked stack frames were still being used and causing crashes in the test suite. These are now all resolved.
a61c839 Add radar info for self.skipTest().
422f116 Skip the TestObjCDymaicValue.py tests for i386 due to dynamic types for ObjC V1 runtime not implemented yet. Radar to be filed.
7f9985a Add TestInferiorChanged.py to test that lldb reloads the inferior after it was changed during the debug session. First, main.c causes a crash, the inferior then gets re-built with main2.c which is not crashing.
06f0db6 Added an error message when the user tries to add a filter when a synthetic provider for the same type is already defined in the same category The converse is also true: an error is shown when the user tries to add a synthetic provider to a category that already has a filter for the same type
4d162e5 When running dotest.py under pdb (the python debugger), define DOTEST_PDB=YES and DOTEST_SCRIPT_DIR=/path/leading/to/your/dotest/script/directory.
35bcafb Taking care of an issue relating to mapping DeclContext's to DIE's
a1c7e46 Fix a logic error (Division by zero) uncovered by the static analyzer.
2e45b0c Fixed the issue of a DW_TAG_subprogram in a DW_TAG_subprogram correctly this time after recently backing out another fix.
db64d95 Giving a warning to the user the first time children are truncated by the new cap setting
11afe6a Backout previous fix that was designed to allow functions within functions as this function is what parses the blocks for a function...
690f5e3 Fixed an assertion issue that can arise when a function is contained inside a function.
c5dca6c Fixed some issues with parsing C++ methods where our detection was failing if the DWARF was laid out in a certain way. The way we detect C++ classes is now more robust so that a class method can be defined outside of the class and refer to a definition inside the class with a DW_AT_specification or DW_AT_abstract_origin attribute.
bedc667 Fixes the occasional crash on exit when quitting lldb with control-D.
018921d *Some more optimizations in usage of ConstString *New setting target.max-children-count gives an upper-bound to the number of child objects that will be displayed at each depth-level This might be a breaking change in some scenarios. To override the new limit you can use the --show-all-children (-A) option to frame variable or increase the limit in your lldbinit file *Command "type synthetic" has been split in two: - "type synthetic" now only handles Python synthetic children providers - the new command "type filter" handles filters Because filters and synthetic providers are both ways to replace the children of a ValueObject, only one can be effective at any given time.
b6f99aa Fix a logic error caught by the static analyzer.
65f39ed Fix some warnings from static analyzer. The initialization of 'replicated_element' to 0 is needed, otherwise we get a garbage value to start with.
4617fcd Silence the static analyzer.
a65ac25 Fix two 'dereference of a null pointer' detected by the static analyzer.
c613971 Fixed LLDB's handling of ElaboratedTypes, which was causing problems with printing the values of persistent variables with struct types.
cebe965 Silence the static analyzer.
20e663f Fix 'Undefined or garbage value returned to caller' (static analyzer).
87ff150 Silence the static analyzer.
7114831 changed some variables from char* to std::string
dfe2761 To silence the static analyzer.
0811370 Fix the expect patterns to work for both OSX SnowLeopard and Lion. On Lion, printf is defined in libsystem_c.dylib.
1ae0e69 Patch by Matt Johnson to build on his Linux machine with recent versions of libstdc++ and glibc!
6c98ba7 Updated LLVM/Clang to to pick up fixes for a problem in which the following cast: – expr (int (*)(const char*, ...))printf - caused a crash. This had several causes:
c168065 Fix a logic error caught by the static analyzer.
1239c1a Fixed an issue where LLDB was complaining about the lack of 'update' in a synthetic provider, despite it being optional
60a7df5 To silence the static analyzer.
b822658 Fix a logic error caught by the static analyzer.
1e1460b To silence the static analyzer.
7559f33 To silence the static analyzer.
9c57fc0 Fixed an issue where a pointer's address was being logged instead of its value Access to synthetic children by name: if your object has a synthetic child named foo you can now type frame variable object.foo (or ->foo if you have a pointer) and that will print the value of the synthetic child (if your object has an actual child named foo, the actual child prevails!) this behavior should also work in summaries, and you should be able to use ${var.foo} and ${svar.foo} interchangeably (but using svar.foo will mask an actual child named foo)
f2bf870 Patch for "process load" by Filipe Cabecinhas.
b01760c Fix the broken build that happened with my last checkin.
5beb99d Added the ability to remove orphaned module shared pointers from a ModuleList. This is helping us track down some extra references to ModuleSP objects that are causing things to get kept around for too long.
758db96 Add logic to SBValue.linked_list_iter() to detect infinite loop and to bail out early. Add code to test case to create an evil linked list with:
d96c9e8 Change the SBValue.linked_list_iter() to treat the value object as a homogeneous linked list data structure where an empty linked list is represented as a value object with a NULL value, instead of a special value object which 'points' to NULL.
178e101 Incremental fixes of issues found by Xcode static analyzer.
8bc9af1 In the case where we are trying to resume a thread all the way to 0, if we get
6fd55f1 When a benchmarks test fails, the re-run command should include the '+b' option instead of the '-t' option.
0734eb0 Ignore the static analyzer, instead; and add comment why.
9a7749c Incremental fixes of issues found by Xcode static analyzer.
ee6e790 Incremental fixes of issues found by Xcode static analyzer.
7c4fc6e Include the qLaunchSuccess and qC packets in the 10 second timeout zone. When launching we increase the timeout to 10 seconds to ensure we have time to launch a process, and then set it back.
1b3d1df Fixed a problem that prevented access to members of string literals ("hello"[2]). Also fixed a problem in which empty string literals were not being compiled correctly ((int)printf("") would print garbage).
9d56ba9 Check log shared pointer before using it.
a7e1b6d renaming command "type synth" to "type synthetic" for added readability
79d9136 Remove extra newline from end of 'frame info' command output.
153ccd7 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.
840eb26 CFString.py now shows contents in a more NSString-like way (e.g. you get @"Hello" instead of "Hello") new --raw-output (-R) option to frame variable prevents using summaries and synthetic children other future formatting enhancements will be excluded by using the -R option test case enhanced to check that -R works correctly
0f3cf06 Fix indentation for a log statement.
58021cc Check log shared pointer before using it.
122204d Check log shared pointer before using it.
8818ae7 Fixed the type code to print "<invalid>" for NULL types instead of letting Clang crash.
a713b86 Fix indentation.
f6d3d79 Fix a bunch of places where we were calling log->Printf to put CStrings.
ed3f86b Fixed a potential crash in Process.cpp when we used a log unchecked.
a796e0e Typo in the test case for i386.
eaaa8fd When unloading a library, pass the old complete version of the library to UnloadImageLoadAddress, since that one is completely filled in. The one we make up from the event doesn't have section info since the library has already been unloaded by the time we get to it.
5c82286 Fixed the Objective-C "self" test case, which was behaving erratically because it didn't have a return statement in -[A init].
e789613 Silence clang warning.
2072b49 Simplify lang/objc/self/Makefile, plus it's wrong. :-) For Makefile.rules, the modification of CFLAGS (addition of -arch $(ARCH) for Darwin) needs to come before the consuming of CFLAGS, not after.
c143d62 Fix a crash while running the test suite. Need to check the (LogSP)log shared pointer before using it.
c0c397f Fixed a problem where the HasAVX() code in debugserver did not back up %ebx/%rbx, even though it was being clobbered by the CPUID instruction.
1a78f6a Add a negative self.expect() to verify that the bug has been fixed.
153191e The "bool HasAVX()" function doesn't backup and restore the cpu registers it uses and it crashes the release version of debugserver. We just get lucky in Debug builds. Until this is fixed I am disabling AVX detection to avoid the crashes.
716cefb Added some logging and did some member renaming.
21f37ad Move the handling of breakpoint conditions from the Private event loop to the StopInfoBreakpoint::DoActions, which happens as the event is removed. Also use the return value of asynchronous breakpoint callbacks, they get checked before, and override the breakpoint conditions.
f669850 Basic support for reading synthetic children by index: if your datatype provides synthetic children, "frame variable object[index]" should now do the right thing in cases where the above syntax would have been rejected before, i.e. object is not a pointer nor an array (frame variable ignores potential overload of []) object is a pointer to an Objective-C class (which cannot be dereferenced) expression will still run operator[] if available and complain if it cannot do so synthetic children by name do not work yet
082a3d0 Check in a customized benchmark which compares the Xcode 4.1 vs. Xcode 4.2's gdb disassembly speed on lldb's Driver::MainLoop function which is ~1190 lines of x86 assembly code. This file is not exercised during the normal test suite run, i.e., no +b option specified. So it should be ok.
24e0d61 Don't create a new stop info if we've already calculated one and it is still valid.
0eeaa98 Remove some commented out code that doesn't connect to anything yet...
899025f Added a "--global" option to the "target modules list" command that allows us to see all modules that exist and their corresponding global shared pointer count. This will help us track down memory issues when modules aren't being removed and cleaned up from the module list.
ec07c0d Add EvaluateWithError static method. Fix a bug in handling constant expressions - we weren't setting the result even though the expression evaluation succeeded...
28c83e9 Fixed a loop that I was testing changes with and forgot to revert to zero.
f8b468e Made the expression parser use the StackFrame's variable search API rather than rolling its own, fixing one of our testcases.
c617a4c This is an overhaul of the expression parser code that detects what context the current expression is meant to execute in. LLDB now properly consults the method declaration in the debug information rather than trying to hunt down the "this" or "self" pointer by name, which can be misleading.
0c64baf On second thought, add the IsValid() method to SBTypeList, making it similar to SBSymbolContextList and SBValueList. Modify the test suite accordingly.
94c7c1d Fixed test suite failure of test_SBTypeList().
5cdaac5 Add SBType.GetBasicType() to the test scenario.
8c1d720 Fixed issues for iOS debugging where if a device has a native architecture that doesn't match the universal slice that is being used for all executables, we weren't correctly descending through the platform architectures and resolving the binaries.
5307575 Add docstring & example usage for SBTypeList.
f1e7a30 Fix indentation and remove the private section of SBTypeList. SWIG doesn't care about the private section of class SBTypeList.
d7e04d9 o modify-python-lldb.py:
3ee8520 The recently introduced SBTypeList is also iterable. This patch takes some time because the old Python constructor pattern was not a valid one, and breaks with SBTypeList's __init__ signature. Oops.
a54ad99 Option --regex (-x) now also works for synthetic children: - Added a test case in python-synth Minor code improvements in categories, making them ready for adding new element types
5f0559d Complete Host::Backtrace prototype. Fixes Linux build.
74597b8 Remove expectedFailure decorator for test_SBType, which does not take an empty constructor after the recent changes. And remove expectedFailure decorator for test_SBTypeMember, which no longer exists after the recent changes, replace it with test_SBTypeList.
80b01e5 fixed a potential memory leak ; small improvement in the formatters lookup algorithm
96df5a1 Print out the stopwatch (which contains laps, total elapsed time, and average) instead of just the average.
952cc2b Add a benchmark comparing lldb vs. gdb with disassembly on a large function (lldb's Driver::MainLoop()).
5c9a3c7 Fixed a problem that caused LLDB to fail to execute expressions that used function pointers. The problem was that IRForTarget previously only scanned the IR for the expression for call instructions; if a function was used in another context, it was ignored.
a83f877 Make sure we track CXX and objc method decls.
9faf327 Fix some typos.
c5bf375 Remove an extra 'for' in the comment.
0b7566c Fix makefile rules to prevent CFLAGS from appearing twice in the command line.
62d527e Add a test to check the integrity of the lldb public api directory containing SB*.h headers.
e294545 changing CFString.py to reflect the new behavior of CreateValueFromAddress
c931030 more logical behavior for SBValue::CreateValueFromAddress
7718f3f copying std:: SynthProviders in examples/synthetic
4e5397c New formatting symbol %# can be used in summary strings to get the "count of children" of a variable - accordingly, the test cases for the synthetic providers for the std:: containers have been edited to use ${svar%#} instead of ${svar.len} to print out the count of elements ; the .len synthetic child has been removed from the synthetic providers The synthetic children providers for the std:: containers now return None when asked for children indexes >= num_children() Basic code to support filter names based on regular expressions (WIP)
c92eb40 APIs to GetValueAsSigned/Unsigned() in SBValue now also accept an SBError parameter to give more info about any problem The synthetic children providers now use the new (safer) APIs to get the values of objects As a side effect, fixed an issue in ValueObject where ResolveValue() was not always updating the value before reading it
0fb0bcc Cleaned up the SBType.h file to not include internal headers and reorganized the SBType implementation classes.
0c3d6d6 Basic handling of Objective-C tagged pointers: return a custom ISA and typename when one is detected
4a1ef6f Minor modification to get the full path to the target program.
f31a4c2 Remove copy-and-paste residues.
d325115 Fix typos.
37f6b79 Add license header comment.
a013b20 Conditionize the 'print "Set environment ..."' stmt.
61e0247 Add a test directory for lldb C++ API programs.
af60381 Add a directory to make the second copy of libd.dylib in, so we don't have to make & delete directories in the test case. Make a real copy of libd.dylib in that directory so the two libraries are actually different. Use (and remove) the DYLD_LIBRARY_PATH to point to the new library.
9f39a7b Patch from David Forsythe for FreeBSD build!
b4e4ecc Add expectedFailure decorator. rdar://problem/9890530
1684446 Unquote the env_cmd_string variable. Skip the test case test_dyld_library_path(self) because it causes the debugserver to crash.
77ee393 Don't set DYLD_LIBRARY_PATH in the Python environment (which will get passed down to debugserver) but set it in the debugger settings (which will just get passed down to the target).
2bb136a temporarily blacklisting a test case causing hangs on Mac OS X
433c64a testing for a previous issue where formats in summaries where not enforced in all cases ; removed an unused local variable
3c24b49 Improved the expression parser's detection of the current context. Previously, if there was a variable called "self" available, the expression parser assumed it was inside a method. But class methods in Objective-C also take a "self" parameter, of DWARF type "id". We now detect this properly, and only assume we're in an instance method if "self" is a pointer to an Objective-C object.
6678676 Fixed an issue of wrong (by +2) branch target calculation in the disassembler's symbolic information output.
ddb213d Fixed an issue with parsing object files from .a archives. The entire .a file gets cached, and after the first .o file gets loaded, a cached version would get used when trying to extract the skinny slice from a fat BSD archive and would cause a code path to get taken in the BSD archive parser even if we aren't at a BSD archive offset.
441f08c Fixed an issue where the KVO swizzled type would be returned as the dynamic type instead of the actual user-level type - see the test case in lang/objc/objc-dynamic-value for an example Objective-C dynamic type lookup now works for every Objective-C type - previously, true dynamic lookup was only performed for type id
e013e10 Add a test file to go with r136745. It fails, though, for:
34ce4ea Create the scratch AST context in the accessor function, not only when the executable is set.
51b11e0 Add method Module::IsLoadedInTarget, and then in the MacOS X dynamic loader, after we have initialized our shared library state, discard all the modules that didn't make it into the running process.
3b8a605 Fix a copy/paste error in a comment.
6e2d282 Fixed an issue where StackFrame::GetValueForVariableExpressionPath(...) was previously using the entire frame variable list instead of using the in scope variable list. I added a new function to a stack frame:
36f6fb9 Change CommandObjectTargetModulesAdd to set the return status object on successful adding of a module.
7dfb1bb bug fix in SBValue::CreateValueFromAddress() where using the resulting VO as a pointer would crash LLDB ; minor improvements in dynamic formatters lookup
113388f Add the real benchmarks comparing lldb against gdb for repeated expression evaluations. Modify lldbbench.py so that lldbtest.line_number() utility function is available to BenchBase client as just line_number(), and modify lldbtest.py so that self.lldbExec (the full path for the 'lldb' executable) is available to BenchBase client as well.
9930990 Fixed a bug in which the DWARF reader did not distinguish appropriately between C++ static methods and non-static methods. This bug made it impossible to call most static methods, either because Clang did not recognize that a method could be called without providing a "this" parameter, or because Clang did not properly mangle the name of the method when searching for it in the target.
4b66329 Patch by David Forsythe to build lldb on FreeBSD!
6487558 Remove libEnhancedDisassembly.dylib
afb7c85 Fixed a bug where a variable could not be formatted in a summary if its datatype already had a custom format Fixed a bug where Objective-C variables coming out of the expression parser could crash the Python synthetic providers: - expression parser output has a "frozen data" component, which is a byte-exact copy of the value (in host memory), if trying to read into memory based on the host address, LLDB would crash. we are now passing the correct (target) pointer to the Python code Objective-C "id" variables are now formatted according to their dynamic type, if the -d option to frame variable is used: - Code based on the Objective-C 2.0 runtime is used to obtain this information without running code on the target
bd43453 Simple renaming: self.swatch -> self.stopwatch.
cbfd093 Add a Stopwatch utility class to lldbench.py module and initialize an instance of Stopwatch (self.swatch) within the BenchBase's setUp() instance method to be available to all the child classes.
db67858 Remove unittest.skip() as 'rdar://problem/9691614 Expression parser crashes' is fixed.
c6b8c91 Remove the @expectedFailure decorator as rdar://problem/8668674 is fixed.
71cb797 Add an abstract base class called BenchBase to be inherited by benchmark tests. Modify the example TestRepeatedExprs.py to use BenchBase, instead.
57fb37e Fixed a problem in the expression parser that caused functions that were cast as part of the call to have that cast ignored once their addresses were resolved.
cbe5126 More refactorings to migrate logic from TestBase to its parent class.
366fb8c Start refactoring lldbtest.TestBase so that it inherits from a newly created lldbtest.Base class, while its API clients remain unchanged. The new lldbtest.Base class is to capture common behaviors when working with the test driver to accomplish things. The clients of lldbtest.Base can be lldb command line and api tests as well as other generic tests like a benchmark test.
3bd6433 Remove the @expectedFailure decorator since the bug has been fixed.
166ba10 Added checking to make sure that the target has a scratch AST context before attempting to parse.
9a87743 Fixed a bug where named constants were being treated as externals, causing problems when we tried to look their locations up in the debug info. For example:
e6526bb Remove the deprecated MacOSX native plug-in.
f4a0148 Copy the native darwin register stuff out of the ProcessMacOSX plug-in folder.
9b7d038 Updated LLVM to pick up a few new ARM targets.
19395ef Update Xcode project versions to lldb-70 and debugserver-142.
c4d4fb5 Add reloc arg to standard JIT createJIT()
37952c2 Protect a bit against uninitialized std::list objects, but there is more work to be done.
73ab7f1 Protect a bit better against uninitialized vectors.
9b6898f This change brings in the latest LLVM/Clang, and completes the support in the LLDB expression parser for incomplete types. Clang now imports types lazily, and we complete those types as necessary.
e626c49 Cleaned up the NSString summary formatter to not print "<invalid object>" when we have a nil NSString *. Also added blank lines between functions in the CFString.py files.
82ccf40 Add a @benchmarks_test decorator for test method we want to categorize as benchmarks test. The test driver now takes an option "+b" which enables to run just the benchmarks tests. By default, tests decorated with the @benchmarks_test decorator do not get run.
dcc59f0 Fixed a compile error.
bfc0613 changes in the new GetMinimumLanguages() ; robustness improvements in the CFStringSynthProvider object ; made a CFString_SummaryProvider function you can use if all you care about is the summary string for your NSString objects
62fcf03 Moved some functionality from ValueObject to ClangASTType.
c5fa005 Add a redo.py script which takes a session directory name as arg and digs into the directory to find out the tests which failed/errored and need re-running. The dotest.py test driver script is modified to allow specifying multiple -f testclass.testmethod in the command line to accommodate the redo functionality.
1bc04ed Logging and return code fixes.
6a4e58e new synthetic children provider for CFString and related classes ; test case for it
979e20d 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
86fbeeb Add regression test for rdar://problem/9531204.
ca8a206 Add test case for rdar://problem/9673664.
fe34c89 Add some descriptions about the default executable name being 'a.out' and can be overwritten by specifying your EXE make variable via your Makefile or within the Python test script.
e032360 Add a reproducible test case (expression parser crashes) to the lldb test suite.
626f11e Make the test criteria more stringent with respect to rdar://problem/8668674 to prevent accidental pass.
28945d5 another possible incarnation of a C++ string straight from llvm-gcc build 5658
97742fe Modify:
38581d2 The SBValue.linked_list_iter() API failed for an empty list. Fix the bug and add a test case.
ae18fbf make the C++stdlib string summary work even if for some reason std::basic_string<char> ends up in the debug info instead of std::string
19334f4 Add docstrings and cross refs to SBCompileUnit and SBLineEntry.
c6f09f0 Add cross reference to SBThread from the SBFrame docstring. Also add a simple iteration example.
7b9eeac Add deprecation docstrings for some APIs which take an SBFrame - SBValues know their own frames.
c4f3ade Fix indentation and add a docstring for the ctor.
2fc7c4b Add skip test for clang, which has insufficient debug info for call site in main().
6a319e4 adding required utility function to SWIG interface
a4673e1 We can do better with the SBValue.linked_list_iter() API by supplying a default end of list test function as __eol_test__.
021cdc2 The test function to determine whether we have reached the end of the list was too complex in the test case. We can just simply test that the SBValue object is a valid object and it does not correspond to a null pointer in order to say that EOL has not been reached.
f307cf7 lldb.swig (the SWIG input file) has become too large. Modularize a bit by introducing two files to be included from lldb.swig: python-typemaps.swig and python-wrapper.swig.
d05213b RNBRemote.cpp, RNBRemote.h: Add a new qGetPid packet which returns the pid of the process currently being debugged by debugserer in hex, or 0 if unavailable.
7868bcc Indent the frames in the "thread.GetStatus" frame listing. Also put the same space after each thread listing for "thread backtrace all" as "thread backtrace 1 3 5"
ead6fd6 Add newline at end of file.
8cecd17 Minor modification.
9ed9f8b Rename the parameter for the end-of-list test function from end_of_list to end_of_list_test.
de856cc Add cross references between the docstrings for regular SBValue iteration:
7d2af5d Add an example type summary -- for lldb::ConnectionStatus.
11d72f2 bug fix in ClangASTType when trying to get size of a non-complete type
ad3a38e Add a stronger assert for the test to ensure that the visited items from iterating through the SBValue.linked_list_iter() API is equal to [1, 2, 4, 5].
fbebbc9 Provide an add-on API to SBValue class by post-processing to provide a way to iterate through an SBValue instance by treating it as the head of a linked list. API program must provide two args to the linked_list_iter() method: the first being the child member name which points to the next item on the list and the second being a Python function which an SBValue (for the next item) and returns True if end of list is reached, otherwise it returns False.
ca67cc1 Python synthetic providers must provide a num_children call; this was not specified in the docs up to now
e89ab7b new flag -P to type synth add lets you type a Python class interactively added a final newline to fooSynthProvider.py new option to automatically save user input in InputReaderEZ checking for NULL pointers in several new places
9ae7cef Python synthetic children: - you can now define a Python class as a synthetic children producer for a type the class must adhere to this "interface": def __init__(self, valobj, dict): def get_child_at_index(self, index): def get_child_index(self, name): then using type synth add -l className typeName (e.g. type synth add -l fooSynthProvider foo) (This is still WIP with lots to be added) A small test case is available also as reference
9cbb125 Don't delete & remake the exception breakpoints every time you need them. Make them once & enable/disable them as appropriate. Also reformatted the lldb summaries to make them easier to read, and added one. I'll do more as I get time.
638ebcf Add an additional formatter class RecursiveDecentFormatter which prints the value and the decendents. For an example,
402056a Add new API for SBAddress to the fuzz test:
590474f Disable compilation of RegisterContextDarwin_arm.cpp on non-Darwin platforms, and fix RegisterContextDarwin_x86_64.cpp build
4755698 Update ProcessLinux::CanDebug prototype
ea6d783 Add support for platforms without sa_len to SocketAddress, and modify some code to use it
de4059f some editing of data visualization error messages to make them more meaningful debugging printfs() for data visualization turned into a meaningful log: - introduced a new log category `types' in channel `lldb'
a395506 Make the SBAddress class easier to use when using the public API.
8c06276 Fix comment.
084fd89 Add BasicFormatter and ChildVisitingFormatter utility classes to the lldbutil.py module which provide some convenient ways to print an SBValue object. Use that in TestValueAPI.py to print the 'days_of_week' char* array variable.
e4e3e2c when typing a summary string you can use the %S symbol to explicitly indicate that you want the summary to be used to print the target object (e.g. ${var%S}). this might already be the default if your variable is of an aggregate type new feature: synthetic filters. you can restrict the number of children for your variables to only a meaningful subset - the restricted list of children obeys the typical rules (e.g. summaries prevail over children) - one-line summaries show only the filtered (synthetic) children, if you type an expanded summary string, or you use Python scripts, all the real children are accessible - to provide a synthetic children list use the "type synth add" command, as in: type synth add foo_type --child varA --child varB[0] --child varC->packet->flags[1-4] (you can use ., ->, single-item array operator [N] and bitfield operator [N-M]; array slice access is not supported, giving simplified names to expression paths is not supported) - a new -S option to frame variable and target variable lets you override synthetic children and instead show real ones
62ebe5a Add test scenario of SBValue APIs for the 'days_of_week' global variable.
4b06725 Add test scenario for exercising SBValue API: TypeIsPointerType() and GetByteSize().
1e3a522 Initialize the all important automatic variable 'lldb::ConnectionStatus status' before invoking the Read(...) method to read in bytes. Similar to r135461.
aa43001 If we are telling only one thread to run in debugserver, and that thread has been suspended from outside the debugger, resume it before running so we will actually make progress.
fb25b10 essentials contains two small summaries that you might really want to use; lldb contains some basic summaries for use in debugging LLDB itself. to use them, you must type category enable lldb
7b13922 More KDP fixes and logging cleanup.
39f3310 Change docstring wording: from 'method' to 'function'.
b44dc56 Add docstring for SBInstructionList class.
4b53e65 Add docstring for SBCommandReturnObject class.
dca4097 Add docstring for SBCommandInterpreter class.
f3b8992 Add docstring for SBBroadcaster class.
bc92ef0 Add a note.
79f1106 Minor modification.
da4d479 Skip the remaining -Y? (skipping ? layers of summaries) tests if using a known version of Apple gcc build which produces wrong namespace for std::string in debug info.
234981a Added KDP resume, suspend, set/remove breakpoint, and kernel version support. Also we now display a live update of the kexts that we are loading.
0b723ce Remove extra launch arguments.
ec15f50 Added register reading support for ARM, i386 and x86_64.
fd33bac Add some docstrings for SBFileSpec class.
c7162a5 Add some docstrings for SBError class.
02afd34 A more succinct assertTrue.
2a458f9 Minor change; add an assertTrue stmt.
8a47028 Add some docstrings for SBSourceManager class.
1a73d4c Add some docstrings for SBStream class.
5cb6cab Move the rest of the SB headers to interface files. They are not docstring'ed yet.
1e620f0 type category list now supports a regular expression argument that filters categories to only include the ones matching the regex type summary list now supports a -w flag with a regular expression argument that filters categories to only include the ones matching the regex in category and summary listings, categories are printed in a meaningful order: - enabled ones first, in the order in which they are searched for summaries - disabled ones, in an unspecified order type summary list by default only expands non-empty enabled categories. to obtain a full listing, you must use the -w flag giving a "match-all" regex
335b3ee Rearrange the %include SWIG directives into two groups. One is the pure .h headers and the other is the .i interface files. The objective is to move the .h header into .i interface file eventually.
23ba377 Applied Matt Johnson patch to ValueObject and FormatManager
e1cffb1 Avoid calling accessor function more than once when result is already in a local.
d5b3e3c Added some more functionality to SocketAddress and modified ConnectionFileDescriptor to use it.
2bc9eb3 Patch by Matt Johnson to silence G++ warnings! Used hand merge to apply the diffs. I did not apply the diffs for FormatManager.h and the diffs for memberwise initialization for ValueObject.cpp because they changed since. I will ask my colleague to apply them later.
051900b Fix build error for StringSummaryFormat undefined symbols.
4c3fb4b The implementation of categories is now synchronization safe Code cleanup: - The Format Manager implementation is now split between two files: FormatClasses.{h|cpp} where the actual formatter classes (ValueFormat, SummaryFormat, ...) are implemented and FormatManager.{h|cpp} where the infrastructure classes (FormatNavigator, FormatManager, ...) are contained. The wrapper code always remains in Debugger.{h|cpp} - Several leftover fields, methods and comments from previous design choices have been removed type category subcommands (enable, disable, delete) now can take a list of category names as input - for type category enable, saying "enable A B C" is the same as saying enable C enable B enable A (the ordering is relevant in enabling categories, and it is expected that a user typing enable A B C wants to look into category A, then into B, then into C and not the other way round) - for the other two commands, the order is not really relevant (however, the same inverted ordering is used for consistency)
ac304e4 Abstract "struct sockaddr", "struct sockaddr_in", "struct sockaddr_in6" and "struct sockaddr_storage" into a new host class called SocketAddress. This will allow us to control the host specific implementations (such as how to get the length) into a single Host specific class.
0fa5124 Modified the LocateMacOSXFilesUsingDebugSymbols(...) function to locate an executable file if it is right next to a dSYM file that is found using DebugSymbols. The code also looks into a bundle if the dSYM file is right next to a bundle.
8a717e5 Fixed a bug where deleting a regex summary would not immediately reflect in the variables display The "systemwide summaries" feature has been removed and replaced with a more general and powerful mechanism. Categories: - summaries can now be grouped into buckets, called "categories" (it is expected that categories correspond to libraries and/or runtime environments) - to add a summary to a category, you can use the -w option to type summary add and give a category name (e.g. type summary add -f "foo" foo_t -w foo_category) - categories are by default disabled, which means LLDB will not look into them for summaries, to enable a category use "type category enable". once a category is enabled, LLDB will look into that category for summaries. the rules are quite trivial: every enabled category is searched for an exact match. if an exact match is nowhere to be found, any match is searched for in every enabled category (whether it involves cascading, going to base classes, ...). categories are searched into the order in which they were enabled (the most recently enabled category first, then the second most and so on..) - by default, most commands that deal with summaries, use a category named "default" if no explicit -w parameter is given (the observable behavior of LLDB should not change when categories are not explicitly used) - the systemwide summaries are now part of a "system" category
72fa64b Initialize the all important automatic variable 'lldb::ConnectionStatus status' before invoking the Read(...) method to read in bytes. This seems to fix the infinite looping I was seeing on SnowLeopard while running the test suite.
6d91e0a Add SWIG interface files for SBSymbol, SBSymbolContext, and SBSymbolContextList.
fb35e2a Add SWIG Python interface files for SBLineEntry, SBListener, and SBModule.
ba6f252 Missed the interface file for SBFunction in the previous checkin.
6cf1bc3 Add SWIG Python interface files for SBDebugger, SBCompileUnit, and SBEvent.
3cfd5e8 Add SWIG Python interface files for SBAddress, SBBlock, SBBreakpoint, and SBBreakpointLocation.
8cd8670 Removed a redundant dyn_cast. Thanks to Felipe Cabecinhas.
c3fba81 Add SWIG Python interface files for SBProcess, SBThread, and SBFrame.
7be5a4f Fix header documentations.
854a1ba Add two new interface files SBValue.i and SBValueList.i, instead of directly swigging the header files.
a37300a Cleaned up the interface file for SBTarget.
6c9f3e2 Runtime errors in Python scripts were not being shown; this fix makes them print out to ease correcting errors
8d2ea28 Added a boolean to the pure virtual lldb_private::Process::CanDebug(...) method so process plug-ins that are requested by name can answer yes when asked if they can debug a target that might not have any file in the target.
8717687 Have SWIG generate autodoc strings with parameter types for all SB API objects by default.
ebd63b2 Create an interface file for SBTarget named SBTarget.i which relieves SBTarget.h of the duty of having SWIG docstring features and multiline string literals embedded within.
412babd Add missing #include, fixes Linux build
d52d00f Completed more work on the KDP darwin kernel debugging Process plug-in. Implemented connect, disconnect, reattach, version, and hostinfo.
7f163b3 Some descriptive text for the Python script feature: - help type summary add now gives some hints on how to use it frame variable and target variable now have a --no-summary-depth (-Y) option: - simply using -Y without an argument will skip one level of summaries, i.e. your aggregate types will expand their children and display no summary, even if they have one. children will behave normally - using -Y<int>, as in -Y4, -Y7, ..., will skip as many levels of summaries as given by the <int> parameter (obviously, -Y and -Y1 are the same thing). children beneath the given depth level will behave normally -Y0 is the same as omitting the --no-summary-depth parameter entirely This option replaces the defined-but-unimplemented --no-summary
db15e0c Added support for dynamic detection of AVX, and fixed a few bugs that revealed. Now the "register read" command should show AVX registers (ymm0-ymm15) on Mac OS X platforms that support them.
90d207e System-wide summaries: - Summaries for char*, const char* and char[] are loaded at startup as system-wide summaries. This means you cannot delete them unless you use the -a option to type summary delete/clear - You can add your own system-wide summaries by using the -w option to type summary add Several code improvements for the Python summaries feature
9bb5b41 Fix gcc build error
5503d46 Add TestValueAPI.py to exercise the newly added/modified SBValue APIs:
533ed2f Add some more docstrings for SBCompileUnit and SBBreakpoint, plus incorporate the doxgen doc block of
8f64c47 Added the ability to get synthetic child values from SBValue objects that represent pointers and arrays by adding an extra parameter to the
269f91e Fixed the comment lines in the file comment headers.
1e5b021 Added the ability to connect using "tcp://<host>:<port>" which is the same as the old "connect://<host>:<port>". Also added the ability to connect using "udp://<host>:<port>" which will open a connected datagram socket. I need to find a way to specify a non connected datagram socket as well.
363be3f Hollowed out process plug-in to do KDP darwin kernel debugging.
f7a9b14 Python summary strings: - you can use a Python script to write a summary string for data-types, in one of three ways: -P option and typing the script a line at a time -s option and passing a one-line Python script -F option and passing the name of a Python function these options all work for the "type summary add" command your Python code (if provided through -P or -s) is wrapped in a function that accepts two parameters: valobj (a ValueObject) and dict (an LLDB internal dictionary object). if you use -F and give a function name, you're expected to define the function on your own and with the right prototype. your function, however defined, must return a Python string - test case for the Python summary feature - a few quirks: Python summaries cannot have names, and cannot use regex as type names both issues will be fixed ASAP major redesign of type summary code: - type summary working with strings and type summary working with Python code are two classes, with a common base class SummaryFormat - SummaryFormat classes now are able to actively format objects rather than just aggregating data - cleaner code to print descriptions for summaries the public API now exports a method to easily navigate a ValueObject hierarchy New InputReaderEZ and PriorityPointerPair classes Several minor fixes and improvements
e3a83d2 Add usage docstring to SBValue.h, and minor update of docstrings for SBValueList.h.
d0d9cce Add usage docstrings to SBTarget, SBProcess, and SBThread.
07b32b1 Minor change of variable name, from m to b (for breakpoint).
309c89d Fixed a crasher where entering 'help disasm' on the command line would crash lldb. The reasom of the crash is because of a missing entry in the argument table corresponding to eArgTypeUnsignedInteger. Add such entry and modify the call site of the crash to go through a fail-fast API to retrieve the argument table.
59efa13 Add summary info for SBBreakpoint to the lldb module level docstring.
6185899 Minor wording change.
7b1b875 Fix typo in ConnectRemote() docstring.
2de7ce6 Add some more docstrings (includng example usages) to SBTarget.h.
67dde8e Add some more docstrings for SBTarget.
423d8d0 Use %feature("docstring") for methods of SBModule class so that the methods signature also gets generated in the Python docstring.
7d4c7fe Modify the test script to better handle the different inlining behaviors of clang/gcc/llvm-gcc. If the first breakpoint is due to stop at an inlined frame, test that the call site corresponds to where it should be. Also add an expecr for a second break stop, if the first break stop corresponds to an inlined call frame #0.
4c1671d Add @expectedFailure decorator for test_target_variable_command_with_dsym().
bbc6342 Update docstrings for SBModeule/SBTarget::FindGlobalVariables().
8db6cf5 Add display of a static int variable to the test scenario.
ede7bdf fixing missing RefCounter class
1928653 Add a test case to exercise 'target variable' command before and after running the inferior. Currently it fails after the inferior is run.
7d8622c test cases
86e7c3e smarter summary strings: - formats %s %char[] %c and %a now work to print 0-terminated c-strings if they are applied to a char* or char[] even without the [] operator (e.g. ${var%s}) - array formats (char[], intN[], ..) now work when applied to an array of a scalar type even without the [] operator (e.g. ${var%int32_t[]}) LLDB will not crash because of endless loop when trying to obtain a summary for an object that has no value and references itself in its summary string In many cases, a wrong summary string will now display an "<error>" message instead of giving out an empty string
34bfa4f Fix short description of 'target variable' command.
7dd98df Added the ability to _not_ skip the prologue when settings breakpoints by name by adding an extra parameter to the lldb_private::Target breakpoint setting functions.
6247dbe Added "command history" command to dump the command history. Also made: (lldb) !<NUM> (lldb) !-<NUM> (lldb) !!
b44fcb3 test case for the named summaries feature
1a10208 named summaries: - a new --name option for "type summary add" lets you give a name to a summary - a new --summary option for "frame variable" lets you bind a named summary to one or more variables ${var%s} now works for printing the value of 0-terminated CStrings type format test case now tests for cascading - this is disabled on GCC because GCC may end up stripping typedef chains, basically breaking cascading new design for the FormatNavigator class new template class CleanUp2 meant to support cleanup routines with 1 additional parameter beyond resource handle
425b0cf Passing in os.ctermid() as the arg for SBTarget.Launch(...) for stdin_path, stdout_path, and stderr_path is just wrong and resulted in the inferior's output getting mixed into the GDB remote communication's log file. Change all test cases to not pass os.ctermid() and either use SBTarget.LaunchSimple() or SBTarget.Launch() and pass None as stdin_path/stdout_path/srderr_path to use a pseudo terminal.
c22fb5e Add missing docstring for 'bool stop_at_endtry'.
0a18748 The lldbtest.TestBase.DebugSBValue(self, val) method call now does not need the frame argument. Only the val (of SBValue type) argument is needed.
8b0ce52 Mark the test with expectedFailure for now.
5230c19 rolling back previous commit; double fix made it wrong again
195d540 Prevent the test suite from failing all the time until this bug is fixed
e65566f Mark as expected failure.
57cd6dd Update the test scenario for find_global_variables() to now start the inferior process before issuing API calls to find the global variable and to get its value.
9b82f86 Added the ability to see block variables when looking up addresses with the "target modules lookup --address <addr>" command. The variable ID's, names, types, location for the address, and declaration is displayed.
fb81642 Allow the built in ValueObject summary providers for C strings use lldb_private::Target::ReadMemory(...) to allow constant strings to be displayed in global variables prior on in between process execution.
5638d2c Fixed an assertion crasher. We now handle things correclty and emit an error to stderr when we see this issue.
24b0310 Fixed the global and static variables to always be in scope.
9f6c6e9 Limit the character array summary to 512 bytes.
f9ce9b8 Fixed some const issues with args to some lldb_private::Target functions.
645faca More cleanup on the this plug-in and tried to set the notification breakpoint. I haven't been able to see this breakpoint get hit yet so I still have testing I need to do with the kernel dynamic loader.
6fe03ce Fixed an issue where we weren't zeroing out the type fully thanks to a nice clang warning!
59e093d Fixed an issue with getting the size of an array from an opaque clang_type_t variable where we were using a static cast when we shouldn't have been. Fixed another array related issue where we weren't looking through a typedef.
8cc3f69 Allow reading memory from files before the target has been run.
ca31997 Added the ability to get an abstract file type (executable, object file, shared library, etc) and strata (user/kernel) from an object file. This will help with plug-in and platform selection when given a new binary with the "target create <file>" command.
21c0fd1 Missed the char_to_str_xform on the docstrings for the module level function definitions.
46171ff Add rdar://problem/9747668 info for "target variable g_marked_spot.y" command.
4570195 Add test scenarios for 'target variable' command into TestGlobalVariables.py file.
cdb1b40 Add some comment.
33b4be1 o TestEvents.py:
5d81f49 Added the ability to see global variables with a variable expression path so you can do things like:
9a60f26 New test to check that we can call functions in static methods in ObjC.
27a3ad1 remove errant parenthesis.
19c0d58 Fixed a few issues where typedefs weren't passing through to the correct recursive function.
00e4f65 Rewrite get_kinfo_proc_for_pid() to get the kinfo_proc for the one process we're interested in, instead of fetching all of them and only keeping one.
40f7917 LLDB now has a Kernel dynamic linker that can detect where kexts are loaded. It locks onto *-apple-darwin binaries where the binary has a "__KLD" segment. Soon I will modify the lldb_private::ObjectFile class to return an executable type which will be an enum with values something like: eObjectFileTypeUserExectable, eObjectFileTypeUserSharedLibrary, eObjectFileTypeKernelExectable, eObjectFileTypeKernelSharedLibrary, eObjectFileTypeObjectFile, eObjectFileTypeCoreFile
8c547d4 Make the kernel able to do its initial load from target memory with the process being preferred for all memory reads.
ff78238 final fix for the global constructors issue new GetValueForExpressionPath() method in ValueObject to navigate expression paths in a more bitfield vs slices aware way changes to the varformats.html document (WIP)
d4c27b8 Rearranged the debug output to come before the assert for function name 'outer_inline'. Right now clang-139 fails the test.
bbea133 Added the start of the darwin dynamic loader plug-in. It isn't hooked up to be detected yet, but most of the initial code is there and needs to be debugged more.
58baaad Audited the expression parser to find uninitialized pointers. Some of the spots are obviously initialized later, but it's better just to NULL the pointers out at initialization to make the code more robust when exposed to later changes.
f38b76b Switch to using the S_ISDIR and S_ISREG sys/stat.h macros in CommandCompletions.cpp and DataBufferMemoryMap.cpp. The file type part of the st_mode struct member is not a bitmask.
37f1b92 Handle the possible case where the process launch failed but we don't have an error message.
9a0688f The Python API does not need SBEvent::BroadcasterMatchesPtr() when SBEvent::BroadcasterMatchesRef() suffices.
ae9f748 Added checks to the expresssion parser which make searching for variables and symbols in the target more robust. These checks prevent variables from being reported as existing if they cannot actually be evaluated in the current context.
7a289bb Add docstrings for SBSymbolContextList with example usage.
d06692d Add assert to check the SBModule of SBSymbolContextList returned from SBTarget.FindFunctions().
11cff85 Add test cases to exercise the SBTarget.FindFunctions() API.
968958c Add SBValue::GetID() member method call API.
edeaef1 Add docstrings for SBValueList with example usage.
b7237a6 Fix wording in docstring.
9ae9fd3 Fixed a warning where initializing CommandObject::g_arguments_data[] required global constructors
3f2e1b9 Stop the lldb_private::RegularExpression class from implicitly constructing itself and causing unexpected things to happen in LLDB.
368f822 Centralize the variable display prefs into a new option group class: OptionGroupVariable. It gets initialized with a boolean that indicates if the frame specific options are included so that this can be used in both the "frame variable" and "target variable" commands.
336dc60 Typo in header doc.
801417e Added "target variable" command that allows introspection of global variables prior to running your binary. Zero filled sections now get section data correctly filled with zeroes when Target::ReadMemory reads from the object file section data.
17e5ece new webpage describing type command
1bba6e5 new detailed descriptions for type summary add and type format add some changes to the help system code for better display of long help text -p and -r flags now also work for type format add
f0086c8 Add class docstrings with example usage for SBBreakpoint and SBBreakpointLocation.
1626335 Add class docstrings with example usage for SBFunction and SBAddress.
87ffc77 SWIG doesn't need two methods of the same name 'GetDescription' but differ in the presence of 'const'. Ifndef the non-const one out.
88f6996 Add fuzz calls for SBType::IsPointerType(void *opaque_type).
3781137 Add post-processing step to transform the docstring from 'char', i.e., 'char *', to 'str', i.e., Python string.
2149c25 Revert some Xcode project changes that I didn't intend to checkin.
a5f99b6 Bumped Xcode project version for lldb-68.
54b4bcd Add docstrings for the primordial object -- SBDebugger. The swig "autodoc" feature to remove '*' from 'char *' will be handled by doing post-processing on the lldb.py module.
13cb540 bug fix in summary strings: - ${*var[].something} was not working as expected options -p and -r now also work for type format add
2664941 Remove unnecessary 'import' statement.
75a4012 Fixed an issue that was causing us to crash when evaluating expressions for objective C or C++ methods when "self" or "this" were in scope, but had invalid locations in a DWARF location list. The lack of a valid value caused us to use an invalid type value and then we tried to import that invalid value and we would crash.
9163509 Set the EvaluationPoint's m_thread_id to the RIGHT invalid define...
bafc86e Made the string representation for a SBValue return what "frame variable" would return instead of a less than helpful "name: '%s'" description.
54890a3 Fixed some format names
107e53d Fixed some issues with ARM backtraces by not processing any push/pop instructions if they are conditional. Also fixed issues where the PC wasn't getting bit zero stripped for ARM targets when a stack frame was thumb. We now properly call through the GetOpcodeLoadAddress() functions to make sure the addresses are properly stripped for any targets that may decorate up their addresses.
9762e10 new syntax for summary strings: - ${*expr} now simply means to dereference expr before actually using it - bitfields, array ranges and pointer ranges now work in a (hopefully) more natural and language-compliant way a new class TypeHierarchyNavigator replicates the behavior of the FormatManager in going through type hierarchies when one-lining summary strings, children's summaries can be used as well as values
2ded5ed Add a more verbose docstring for SBThread.h.
da91397 Add swig docstrings for SBBlock.h.
cbb52a6 Add swig docstrings for SBModule.h, plus ifndef the SBModule::GetUUIDBytes() API out if swig. Fix typos in the comment for Module.h.
faf7f05 Add a more verbose docstring to the SBSymbolContext API class. Add doxygen/docstring to SBProcess.RemoteAttachToProcessWithID() API method.
f6ce70a Add a CLEANUP_DOCSTRING state to our FSM to do cleanup of the Python docstrings generated from the swig docstring features instead of blindly applying the cleanup action for all input lines.
f451e30 Add swig docstrings for SBFrame.h. Add post-processing step to remove the trailing blank lines from the docstrings of lldb.py.
d0691fe When we use the "fd://%u" for file descriptors, we need to detect if this is a file or socket. We now make a getsockopt call to check if the fd is a socket.
a9eb827 Cleanup errors that come out of commands and make sure they all have newlines _only_ in the resulting stream, not in the error objects (lldb_private::Error). lldb_private::Error objects should always just have an error string with no terminating newline characters or periods.
3e1c95a Fix Linux build errors
2c77fa4 Refine the post-processing phase of lldb.py to remove some more doxygen/c++-comment residues.
3440a5f Furnish some docstrings to be swigified into the generated lldb.py module. Especially SBProcess.ReadMemory() and SBProcess.WriteMemory() because the generated autodoc strings make no sense for Python programmers due to typemap (see lldb.swig).
9b3117e test cases for the new features just committed
886bc3e several improvements to "type summary": - type names can now be regular expressions (exact matching is done first, and is faster) - integral (and floating) types can be printed as bitfields, i.e. ${var[low-high]} will extract bits low thru high of the value and print them - array subscripts are supported, both for arrays and for pointers. the syntax is ${*var[low-high]}, or ${*var[]} to print the whole array (the latter only works for statically sized arrays) - summary is now printed by default when a summary string references a variable. if that variable's type has no summary, value is printed instead. to force value, you can use %V as a format specifier - basic support for ObjectiveC: - ObjectiveC inheritance chains are now walked through - %@ can be specified as a summary format, to print the ObjectiveC runtime description for an object - some bug fixes
e43cded SWIG doesn't need two methods of the same name 'GetDescription' but differ in the presence of 'const'. Ifndef the non-const one out.
09e0a42 Add some documentation blocks to SBTarget.h and use swig docstring feature to take advantage of them. Update modify-python-lldb.py to remove some 'residues' resulting from swigification.
a0d0a7c Add docstrings for some API classes and auto-generates docstrings for the methods of them. A few of the auto-generated method docstrings don't look right, and may need to be fixed by either overwriting the auto-gened docstrings or some post-processing steps.
e99aa88 Bump Xcode project version to lldb-66 and debugserver-141.
461c87a Useless Xcode project change that Xcode keeps wanting to add to my project so I am giving up the fight...
b6613ea Add module docstring to the auto-generated lldb.py file.
10b4ab1 Ifdef out the 'lldb::Encoding GetEncoding(uint32_t &count)' API from Python SWIG, since it cannot hanlde the (uint32_t &count) parameter.
787554b Restructure to be modular instead of a single big function; should make it a little easier to use this as an example of how to fetch all the different bits of information about threads.
b302b2f Centralize all of the type name code so that we always strip the leading "struct ", "class ", and "union " from the start of any type names that are extracted from clang QualType objects. I had to fix test suite cases that were expecting the struct/union/class prefix to be there.
bbd7bef While we are at it, let's also exercise the similar SBModule.FindGlobalVariables() API within the find_global_variables() test method.
51123cf Add test cases to TestTargetAPI.py to exercise the newly added SBTarget.FindGlobalVariables() API.
1391a39 This commit adds a new top subcommand "summary" to command type named "type". Currently this command implements three commands:
b6dfb16 Add fuzz calls for SBModule/SBTarget.FindGlobalVariables(...).
917c000 Added support for finding and global variables in the SBTarget and SBModule level in the public API.
a6c1be6 Add fuzz calls for SBTypeMember.
446ccaa Add fuzz calls to SBType, SBValue, and SBValueList. Fixed crashes for SBValue fuzz calls. And change 'bool SBType::IsPointerType(void)' to 'bool SBType::IsAPointerType(void)' to avoid name collision with the static 'bool SBType::IsPointerType(void *)' function, which SWIG cannot handle.
82820f9 Remove a few more places where we were iterating linearly over the Breakpoint Site's rather than looking up what we needed by address, which is much faster.
b9dcc51 Fixed an issue that was checked in with the dynamic types and update point changes that caused all SBValue objects to completely ignore the target lock due to bad C++ scoping of the target Mutex::Locker variables.
a64f2ce just a test for commit access - ignore this
e657fbc Add fuzz calls for SBTarget and SBThread.
f0e0bc0 Add fuzz calls for SBSymbol and SBSymbolContext.
2287366 Add fuzz calls for SBStringList and add obj.Clear() calls for some files.
b7a9d64 Add fuzz calls for SBModule and SBProcess.
ff8e5ed Add fuzz calls for SBListener.
ca8f94a Add fuzz calls for SBLineEntry.
189b473 Add @expectedFailure for TestCallStdStringFunction.py (radar was filed) and remove @expectedFailure from TestObjCMethods.py's print_ivars_correctly() function (it has been passing for a while).
1d27c3a Add fuzz calls for SBInstruction and SBInstructionList.
6377f5c Remove the disassembly option: "eOptionShowCurrentLine" and replaced it with two:
b7b4947 Add fuzz calls for SBInputReader.
c50be73 Add fuzz calls for SBFrame and SBFunction.
2fe6157 Add fuzz calls for SBFileSpec.
e4a2fd5 Add fuzz calls for SBEvent.
e2ac6de Move to plevel dirs stop-hook, target, process_launch, and signal to reside under functionalities. Rename target dir to target_command.
d8ded0a Move top level recurse dir to reside under lang/c.
2913d13 Move top level inlines dir to reside under lang/c.
33a1c57 Add comments and print output for selected thread under trace mode.
c0dbdc0 Add TestPrintObj.py to go with lang/objc/print-objc, which:
c9ca455 Simplified Makefile.
31f58fe Move sample objc program to reside under lang/objc.
17a1399 Move top level test dirs platform and inferior-crashing to reside under functionalities and order to reside under macosx.
607914d Move top level test dirs inlined_breakpoints, load_unload, and embedded_interpreter to reside under functionalities.
3f8dff9 Move more top level test dirs to reside under functionalities dir.
aff8648 A couple of directory renamings; get rid of 'tests' from the directory names.
083e4a9 Move some top level directories to reside under functionalities dir.
b5493c2 Create new directory named 'functionalities' to house some existing top level directories.
fc213e1 Move hello_world to now reside under python_api dir.
82bb53b Simplified the test cases, before moving the file to reside under python_api dir.
b26db29 Move struct_types, stepping, and set_values dirs to now reside under lang/c. Move stl dir to now reside under lang/cpp.
b8025be Move global_variables dir to lang/c and foundation dir to lang/objc.
de2f1ed Move test dirs forward and function_types to now reside under lang/c.
b794017 Move some directories to now reside under lang/c or lang/cpp.
c93a8bb Move enum_types to now reside under lang/c.
288a014 Move namespace directory to now reside under lang/cpp.
b11e613 Move C++-related test directories to now reside under lang.
f9c6f90 Move objc-related test directories to now reside under lang/objc.
9914b61 Start moving things around to have a more hierarchical directory structure.
87ac902 Bumped Xcode project versions to lldb-65 and debugserver-140.
04f081d Add support for a QEnvironmentHexEncoded packet which takes its arguments in hex-encoded form instead of the old QEnvironment packet which takes them as plain-text strings. Environment variables containing remote protocol special chars like '#' would fail to set with QEnvironment.
e6d72ca This commit adds broad architectural support for hierarchical inspection of namespaces in the expression parser.
3801c2c Add fuzz calls for SBError.
43fc089 Add fuzz calls for SBDebugger.
165e549 Add fuzz calls for SBCompileUnit.
fa3263b Add fuzz calls for SBCommunication.
16c8872 Add fuzz calls for SBBroadcaster.
b264c9b Compute svn_info for git-svn bridge, too.
b474782 Removed an member variable "m_local_debugserver" that is no longer needed. We now check with the platform to see if we are doing local or remote debugging and setup the stdio accordingly.
fe1b47d Cleanup error output on expressions.
5851366 Add support for looking up ivar offset from the ObjC runtime.
cd6377e Add fuzz calls for SBBreakpointLocation.
15be1d0 Add fuzz calls for SBBreakpoint.
b27e74b Remove an assertion and replace with safe code that emits a warning.
de1dd81 Fixed SBTarget attach calls to properly deal with being connected to a remotely connected process connection.
f4d4fcc ++ cannot be used to increment an enum, so do it another way
07dd55a Add fuzz calls for SBBlock.
1581e74 Start adding API calls to the invalid SB API object after default construction. It should not crash lldb.
fcfc118 Add an initial test file for the newly added data formatter command. main.cpp is contributed from Enrico.
b7e27f4 o lldbtest.py:
3182eff Centralized all of the format to c-string and to format character code inside the FormatManager class. Modified the format arguments in any commands to be able to use a single character format, or a full format name, or a partial format name if no full format names match.
4119be5 For now, use 'b.out' compiled from main2.cpp as the executable name for test_run_to_address_with_dsym/dwarf() to distinguish between other test cases which use 'a.out' compiled from main.cpp.
921fac0 Fix header paths
d062ee8 Refactorings of the test/types directory to more elegantly express the uniqueness of executable names given to each test method.
de7f47d Fix typo spotted by Elias Pipping.
ff0c5df Another patch from Enrico Granata.
5c28dd1 Committing type format code for Enrico Granata.
0664a57 When installing the Python modules: - Respect DESTDIR. - Use the realpath function on the path before prepending DESTDIR. - Don't depend on liblldb.{so,dylib} being installed already. - Don't put the DESTDIR into the _lldb.so symlink.
cbc07cf Fixed an issue for ARM where data symbols would alway return invalid addresses.
cad757c Remove -MT options from SWIG invocation
2c41e14 Modify the test cases (there are a bunch of them) under test/types so that they employ different executable names when creating the target for lldb to debug. Comparing the log files for the same test case with success/failure results show that the failed one was setting the breakpoint on some different address than the succeeded one, leading us to suspect that the file system maybe think it knows better and caches the wrong executable file (they were all named 'a.out' before) which lldb subsequently reads from.
b586767 Trivial fix - insert a space between the frame name and the instruction output.
9a39f59 Add docstring to test_SBSymbolContextList(self) explaining that upon default construction, the API object is valid.
41ae812 Reverting switch to the AsyncOutputStream for the Thread Trace Logger. This change caused the logger to crash. Presumably we're printing at a time the debugger isn't ready to print.
f2fa5dd Bump Xcode project version to 64.
51c3533 This newly introduced test file (for debugging purpose) needs to handle the case where the environment variables for log files (DEBUG_LLDB_LOG and DEBUG_GDB_REMOTE_LOG) are not defined.
cd0f938 Recent change to SBSymbolContextList (r133498) makes the default constructor return a valid SB API object. Modify the test case to accommodate.
4985959 Add a 10 second timeout to ensure that we don't lock up if we never get to the process entry point.
4bb0f19 Fixed an issue where SBFrame::GetDisassembly() was returning disassembly that contained the current line marker. This is now an option which is not enabled for the API disassembly call.
cf79716 I messed up the test case id to turn logging on and then off. It is "test_long_type_with_dsym", not "test_long_long_type_with_dsym".
2354bcf Add logging of 'commands' category, too.
785e3e7 Don't print out the baton pointer value for simple Baton classes.
d047d81 rdar://problem/9649573 has captured the log files when running test_long_long_type_with_dsym() (which luckily failed) and the test session files for test failures.
d88785b Add a test file "TestFailures.py" to try to capture test failures which occur when running with no delay between successive test cases. This one happend to capture a test failure where the inferior shoud stop at a breakpoint but did not (radar will be filed to capture the log files as well as the test session files):
c935a89 Fix the log channel for gdb-remote. It should be "gdb-remote" now, instead of "process.gdb-remote".
a4082f0 Replace examine-threads.c with a similar little utility I wrote a while back. By default its output will be less verbose than the old examine-threads.c but adding the '-v' command line flag will give all the information that examine-threads.c provided plus some.
4ed315f 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).
9a9fcf6 For now, insert some delays between succesive test cases in the test/types directory if not already specified by the test driver (via ./dotest -w). Remove the AbstractBase.setUp() method definition when/if we find out the cause of the failures if no delays are inserted between these test cases.
c9aabf0 Simplify the the generic AbstractBase.py test base for testing variable types. We still have the the issue where running:
dfbfa9c Remove duplicate m_monitor field from LaunchArgs
132476f Set LLDB_SESSION_DIRNAME to absolute path
e7a91c1 The "-r" option should work for both "-n" and "-s", but it was only set to work for "-s".
b1821b4 Minor module-level docstring change.
d2554b5 Test lldb Python API object's default constructor and make sure it is invalid after initial construction.
a47b9bd Change to get around the nested ifeq woes on OS X Snow Leopard:
eca14c7 Add dependency tracking/clean rule to interpreter makefile
1561bc4 Enable the "make test" rule in the root Makefile
ac72015 Add a default rule to test/Makefile which runs the test suite
f6c3de8 Modify TestHelp to search for LLDB-Info.plist in the correct place
14ecb06 Create a _lldb.so symlink in the bin directory
61aca48 Have dotest.py search for test cases in its own directory by default, rather than the current directory.
39bd536 Add a builder module for Linux (plus some refactoring)
cf043e6 Add Linux rules to test makefile
7aecabb Revert r133358 which forgoes printing of breakpoint command when doing a breakpoint list where the description level is not eDescriptionLevelBrief. It broke test/TestAliases.py. Besides, to have a brief breakpoint list, you can do "breakpoint list -b".
e6bd142 Use the dyld_mode, image_infos & image_infos_count passed into the shared library notification function to update libraries rather than reading the whole all_imaage_infos structure every time we get notified.
64abe46 Add TestInlinedFrame.py to exercise the newly added SBFrame APIs: IsInlined() and GetFunctionName().
4acd5ec Bumping Xcode project version for lldb-63.
dab471f Fixed a crasher where we were accessing a symbol with a bad index.
887f45f Make sure we have a valid object file before we try getting the symbol table so we avoid crashing.
8c6907c Fixed a case where LLDB would crash if we get C++ operators with invalid operator counts due to bad debug DWARF debug info. We now verify the operator has a valid number of params using the clang operator tables.
20fe30c Switch from USEC_PER_SEC/NSEC_PER_SEC/NSEC_PER_USEC to TimeValue constants
49da2f3 Don't print the baton when a breakpoint has a callback since it is pretty useless to show.
582ed0e Added two new API functions to SBFrame:
307fa07 Added a new format for displaying an array of characters: eFormatCharArray This us useful because sometomes you have to show a single character as: 'a' (using eFormatChar) and other times you might have an array of single charcters for display as: 'a' 'b' 'c', and other times you might want to show the contents of buffer of characters that can contain non printable chars: "\0\x22\n123".
1bd2b2f Fixed variable parsing to not parse block variables over and over due to an issue in the way block variables are marked as parsed. In the DWARF parser we always parse all blocks for a function at once, so we can mark all blocks as having all variables parsed and avoid recursive function calls to try and reparse things that have already been handled.
2da4402 Test case test_connect_remote() has been passing consistently for some times. Let's remove the @expectedFailure marker from it.
ffa458b Modify a bunch of docstrings to be more correct. Check the SBError.Success() after attaching. Also eat the stdout of the spawned "hello_world" process if not in TraceOn() mode.
58d02ff Add a bunch of test cases to TestHelloWorld.py to exercise combinations of dwarf/dsym debug setup. Among them are test cases to exercise SBTarget.AttachToProcessWithName(); we attach to "hello_world", and verify that, after attachment, the currently selected target indeed matches "hello_world".
da5c7e6 Localize the finding of our to-be-debugged executable in one spot during the setUp() phase. Change the executable name to be "hello_world".
604f0d3 Added the notion of an system root for SDKs. This is a directory where all libraries and headers exist. This can be specified using the platform select function:
d1c9fb0 Modify docstring.
63afdb0 Improved the packet throughput when debugging with GDB remote by over 3x on darwin (not sure about other platforms).
535960e o TestHelloWorld.py:
49f3d81 o lldbutil.py:
30ccc22 Add some extra linker flags to LLDB.framework so we can track down why we aren't getting debug info from the liblldb-core.a file in our build server builds.
892fadd Add 'batch_mode' to CommandInterpreter. Modify InputReaders to not write output (prompts, instructions,etc.) if the CommandInterpreter is in batch_mode.
3d8ae46 The extra burden for the Python API test case to assign its process object to self.process in order to have its process cleaned up (terminated) upon tearDown is gone for good. Let's simplify a bunch of Python API test cases.
ef6f476 Simplify the base test class. Remove keyword argument setCookie from TestBase.runCmd() and remove the self.runStarted attribute since the automatic shutdown of processes associated with the targets are now performed automatically.
409646d Add an API to SBDebugger class:
ac35442 Made GetConditionText const everywhere. Made it return NULL when there's no condition like the doc's say it should. Make sure we have a condition before we set up a test whether we have one, so we only present a "could not parse condition" error if we actually have a condition.
3dfeeec Added a few trivial mods.
2b5e4e6 Replace direct uses of the Debugger's output stream with uses of the asynchronous stream.
ef3735a Add an introduction to the scripting example web page.
7af2f02 Update usage comment.
9bab8d4 Primitive attach support for linux
84cc16d Add error message; clean up comment.
2f57b3d Improve error reporting in ProcessMonitor::Launch
50f0e89 Fix mistakes relating to ProcessMonitor::DupDescriptor
6cf4fd1 If ProcessMonitor::Launch fails, post semaphore to notify caller
5f2b5d6 Fix typo: curret -> current
f208453 Generalise pattern for matching IsValid signature
cd73f3e Declare CompareHistoryEvents and IsCurrentHistoryEvent as pure virtual functions
abb3e5b Add license header to InferiorCallPOSIX.cpp
82ce540 Fix typo: fucntion -> function
1c96341 Remove assert() calls that were firing off and crashing the LLDB framework.
5fd8612 Removed unneeded method breakAfterLaunch() from the TestBase class to simplify our base class. It was introduced to work around some debugger infrastructure bug which has long since been fixed.
d4d9283 Cleaning up the Python script interpreter: Use the embedded_interpreter.py file rather than keeping it all in a string and compiling the string (easier to maintain, easier to read, remove redundancy).
87e1f77 More prompt-timing cleanups: Make multi-line expressions use the asynchronous stream mechanism rather than writing directly to the Debugger's output & error streams.
8e432fa Make the size accessor const.
28f8674 Header file cleanup and moved an inline to the implementation file.
9282e86 Added an llvm::StringRef accessor.
d720e01 Explicitly set the value to NULL when adding a string map entry.
9d47944 I modified the StringMap that was being used to unique our debugger C strings to have the value for the map be a "const char *" instead of an unused uint32_t. This allows us to store the uniqued mangled/demangled counterpart in this map for mangled names. This also speeds up the mangled/demangled counterpart lookup that used to be maintained in a STL map by having direct access to the data. If we eventually need to associate other strings to strings to more data, we can make the value of the StringMap have a more complex value.
ac27455 Comment out the debug stmts.
694cfd0 Add rich comparison methods for the SBAddress object. If two SBAddress's have the same module and file address, they are considered equal.
35ec4f1 Remove extra whitespace.
6561155 Created a std::string in the base StopInfo class for the description and cleaned up all base classes that had their own copy. Added a SetDescription accessor to the StopInfo class.
4399446 Make sure we are ok to stop in a thread plan and have no stop reason for the thread we were running on (other thread crashed or had exceptional stop reason).
c40dfc5 Don't codesign with lldb_codesign for non MacOSX SDKs.
ed876b1 Add InferiorCallPOSIX.cpp/.h into the xcode project file to fix build error.
abb53e5 Fix some order-of-initialisation warnings
828c34f Implement RegisterContextLinux_x86_64::{Read,Write}AllRegisterValues
e426d85 Move SaveFrameZeroState and RestoreSaveFrameZero implementations to Thread base class
ad11546 Implement ProcessLinux::Do{Allocate,Deallocate}Memory using inferior mmap/munmap calls
4d623e8 Move inferior mmap/munmap call code into their own functions in utility lib
c3f5573 Disable MCJIT on non-Darwin platforms
182c286 Scan dynamic symbol table of ELF object files
23c36bf Make a few minor changes/corrections to scripting example on the web.
e5ed8e9 Added Debugger::GetAsync{Output/Error}Stream, and use it to print parse errors when we go to run a breakpoint condition.
2726b87 Cleanup the sidebar and include a link to the new python scripting tutorial.
9e933a3 Add the web page for the 'Using Python Scripting to Debug a Program in LLDB' example.
35393b1 Add source files for Python scripting example (coming soon).
6dc5a1a Bail out if we have an invalid thumb instruction.
6cc6097 Turn the commented-out assert()'s into appropriate bail-out actions.
a4438a7 When emulating an ill-formed instruction, we should bail out instead of asserting and bringing down the whole process.
1f56bd9 Bumped Xcode project version for lldb-60.
e1f47bb Remove asserts that will crash LLDB. These should be changed to return true/false in an extra boolean parameter and not cause the the binary that us using the LLDB framework to crash.
261a18b Make sure we don't lose our stop reply packet in the case where the other GDB server doesn't support the LLDB specific qThreadStopInfo packet.
125628c Update the handle many of the packets that our current LLDB debugserver handles. Also fixed a case where the packet wouldn't be dumped if it returned the unimplemented packet.
a54461d Use Py_InitializeEx(0) instead of Py_Initialize, to prevent Python from installing its own signal handlers.
f5ae76b EmulateShiftReg() also accepts shifter type of SRType_ROR.
d8662f5 Create new class, InputReaderStack, to better handle mutexes around input readers and prevent deadlocking; modify Debugger to use the new class.
2d268cb Add comment about Thread::GetStatus(), which returns the number of frames shown.
0f5e6f1 Use the correct accessor on CXXRecordDecl to know when a C++ class is dynamic.
e65b17e Turn off printing of command sent to the pexpect-spawned child process to make the script more robotic.
a8a6871 If somebody has deleted the breakpoint while we are testing the condition, then just continue.
730b955 Remove the "a.out" argument from somewhere on Greg's machine in the lldb-tool run scheme.
219b929 Exercise the 'thread backtrace all' command instead of the currently 'thread backtrace' command. This serves as a regression test against rdar://problem/9530511.
05750a6 The 'thread backtrace all' logical branch had the if (thread->GetStatus()) condition inverted.
6a56f5f Make 'run-until-faulted.py' script more interesting by modifying the example main.c program to seg fault randomly instead of deterministically.
8142220 Make it clear that the Python script modify-python-lldb.py is responsible for post-processing the SWIG-generated lldb.py module by adding comments in the post-processed file in order to facilitate reading of the code.
ec5e0a2 Fix comment.
5420ec8 Fix remaining Python issues leftover from my previous patch.
d8c1dd3 Fix out-dated module docstring for lldbtest.py. Also wrap some lldb attribute references inside a try-except block in case the test is not invoked through the dotest.py test driver.
006b595 Move some comments to the docstrings.
c0df828 Fix dynamic value objects to do the right thing when the value fails to evaluate.
5d729a4 Revert previous changes.
82f0746 lldb-59.
577fbc3 Disable dynamic types being on by default until kinks get worked out when they don't update correctly. Currently if a variable is unavailable due to a register not being available in a higher frame or due to the PC value not being a valid location list value, "<unknown type>" will get displayed as the variable type. I am not sure what other things will fail, so I am disabling it for now just by letting the default enumeration value default to it being disabled.
860f746 Protect the input reader stack with a recursive mutex.
af3f1fb Make sure if an enumeration "settings" value has a valid default setting in its definition, that the first enumeration doesn't always get used as the default.
8fd872c lldb-58
421ca50 Don't have the debugger default to ignoring EOF. This is only what the driver (or anything running in a terminal) wants. Not what a UI (Xcode) would want where it creates a debugger per debug window. The current code had an infinite loop after a debug session ended.
80493d6 lldb-57
d976b0e Fixed an issue that could cause LLDB to spin indefinitely.
7c8d0d4 Fix some comments.
b877031 Add comment headers describing some method groups of our TestBase class. Remove an unnecessary __import__() function call.
8c2e28d Use the with statement to simplify the build script.
b94250f Remove extra '.' in the comment.
5aba3f5 Add comment.
7cd134a Comment change.
4c0c75b Simplify test setup; there's no need to pass a customized dictionary here.
7224aab regexp-break -> _regexp-break in command string.
7d20d2b lldb-56 with codesign settings fixed in the Xcode projects.
a7ab590 Add a little spice to the script to allow us to specify a function name to break at and to disassemble.
d807c51 Add a little twist to the disasm.py script so that it is possible to terminate the inferior process by entering 'Ctrl-D' or 'quit'.
a6cec39 Modified to use SBTarget.LaunchSimple() API.
528a916 Use built-in truth value testing.
234ebab Use built-in truth value testing.
960ce12 Convert these two modules to use the compact truth value testing as well.
225b8e7 Bumping Xcode project versions for lldb-55 and debugserver-139.
19552cb Added some comments.
54b3841 ABI plug-ins must implement the following pure virtual functions:
08477f5 Added comment.
a6303ef Comment change.
b72d177 Fix a potential bug resulting from the wrong assumption that SWIG puts out the __init__ method definition before other method definitions. Instead, do without it and process the class with IsValid() method definition in all possible states.
e5637d2 Update comment.
3930cbe Add comment.
1c3b9f8 Fix a thinko in converting to ReadCStringFromMemory.
805fec7 Now that we have added a post-processing step for adding truth value testing to those lldb objects which implement the IsValid() method, let's change the rest of the test suite to use the more compact truth value testing pattern (the Python way).
a0b5fcc Link in the MCJIT. Fixes makefile build.
d254eb9 Refactor InstructionLLVM::Dump() a little bit to reduce the entropy by introducing a new file static utility function AddSymbolicInfo() which is called from places within InstructionLLVM::Dump().
ca8ad2d Don't resolve the path when we extract the path from the dyld info or we can end up with an invalid path if the path resolves to something different on the local machine. It is very important not to since remote debugging will mention paths that might exist on the current machine (like "/System/Library/Frameworks/CoreFoundation/CoreFoundation" which on the desktop systems is a symlink to "/System/Library/Frameworks/CoreFoundation/Versions/A/CoreFoundation").
79a3ed3 Fix usage comment.
1a0062a Add a Python utility to help convert the Mail.app saved 'Raw Message Source' .eml file to a git-am friendly file.
c049274 This commit integrates support for the LLVM MCJIT into the mainline LLDB codebase. MCJIT introduces API improvements and better architectural support.
6e3dc10 Calculate the dyld slide from all in memory info without having to use the lldb module.
c298a98 Add more workarounds for "bl #..." and "blx #..." where the ARMAsmParser fails to parse/recognize the (PC-relative) immediate operand.
04d397c Fixed an issue in the EmulateInstructionARM there the IT opcode was trying to parse NOP instructions. I added the new table entries for the NOP for the plain NOP, Yield, WFE, WFI, and SEV variants. Modified the opcode emulation function EmulateInstructionARM::EmulateMOVRdSP(...) to notify us when it is creating a frame. Also added an abtract way to detect the frame pointer register for both the standard ARM ABI and for Darwin.
d17f801 Fix the Align() utility which tries to align the raw disassembly with the edis'ed disassembly so that both the opcode and the operands are aligned with the rest of output.
c0fa533 Added new lldb_private::Process memory read/write functions to stop a bunch of duplicated code from appearing all over LLDB:
6cf4d2b Change the m_update_state to an int, and only trigger the "on removal" action the second time the event is removed (the first is the internal -> external transition, the second when it is pulled off the public event queue, and further times when it is put back because we are faking a stop reason to hide the expression evaluation stops.
b220388 Change the command 'breakpoint command remove' to 'breakpoint command delete', to be more consistent with other commands.
5a26910 Added functions to lldb_private::Address to set an address from a load address and set the address as an opcode address or as a callable address. This is needed in various places in the thread plans to make sure that addresses that might be found in symbols or runtime might already have extra bits set (ARM/Thumb). The new functions are:
84d42e8 A little refactoring.
08251ef When in non-raw mode and edis fails to parse the tokens of the instruction, output the raw disassembly so that the opcode aligns with the edis'ed disassembly.
fab305b Lock the target API mutex correctly in all cases and make sure m_opaque_sp contains a valid pointer before trying to access the target.
4a60f9e Centralize the code that gathers the thread ID list from the remote GDB server so that it happens in command sequence where no other packets can sneak between.
d77c039 Fix build error - strstr returns a const char *
905acaf Now that we have dynamic values, we need to protect the GetChildAtIndex() calls with the target API mutex.
1889f1a Better way to build the CFCPP sources as part of liblldbHostMacOSX.
a4bacd4 When installing the binary part of the LLDB Python modules, symlink to the installed liblldb instead of the built one. Now Python support won't break if you clean your build directories.
de5cc8c Workaround the issue of llvm:tB (A8.6.16 B Encoding T2) not being processed as a branch instruction and therefore the symbolic information is not being dumped for non-raw mode.
9f5082f Do not parse DIE's outside a compilation units range.
f6f0e33 Fix typo. Stupid 'n' key...
d4c21f0 Some makefile fixes for the Interpreter: - Make the generation of LLDBWrapPython.cpp respect the VERBOSE setting. - Use -classic mode when generating. LLDPWrapPython.cpp #errors out if -classic wasn't set when it was generated with recent Swig. - Install the Python modules. Now we shouldn't get loads of Python errors trying to run LLDB.
1f75545 Fix the Host library build on Mac OS X with makefiles.
139da72 Fixed an issue in GDBRemoteCommunicationClient where we weren't listening to the "payload_length" argument for the "payload" packet data. This meant we could end up sending random extra data with a packet depending on how the packet was constructed.
eae5e26 Added a perl script to disassemble, into human readable form, the GDB remote packet output from "log enable gdb-remote packets". This should help people track down and see what is going wrong more easily when you have log output that includes GDB remote packets.
1e58a39 Add the LanguageRuntime plugins to liblldb. Fixes link errors for me; if this breaks it for you (or if the LanguageRuntime plugins break the build on your machine), please let me know and I'll revert.
a985eec Add the LanguageRuntime plugins to the makefile build, and remove the Mac OS X Process plugin from the build.
a29381f Fix a tag type mismatch (i.e. class vs. struct) warning.
a71464f Use a SmallVector here instead of a VLA.
0087612 python-config in Makefiles
8b32be7 A bit of clean up.
527b2b9 API fix and missing headers.
9f2d8aa Fix trailing commas at the end of enumerator lists.
b48239f Add radar info.
106f9bd Add TestCallStdStringFunction.py which calls std::string member functions while stopped on a breakpoint.
b7f5945 Build and initialise the Darwin ABI plugins on all platforms
265ab33 Moved a lot of simple functions from StoppointLocation.cpp to be inlined in StoppointLocation.h.
f07f02b Link to LLVM instrumentation lib
59d4cb8 Add UnwindAssembly plugins to makefile build
564a757 #include <string.h> for memset
484ba4d Remove some old files which should have been removed in r131193
c573d69 Use the portable memchr function instead of the BSD-only strnstr
aa9719a Initialise the Darwin ABI plugins only on Darwin
628cead Fixed a crasher that was happened when a log shared pointer wasn't valid.
51ff248 Make InstructionLLVM::Dump() more robust for edis in cases when all the EDOperandIndexForToken(token) calls fail to return a meaningful operand index, resulting in both operands and comment being empty. We will use the raw disassembly string as output in these cases.
4e56cd9 Fixed an issue with the sign extend code so it uses the correct m_data member.
5fba9ee Added the ability to sign extend a Scalar at any bit position for integer types.
ff8fea6 Some refactorings with respect to setting of the 'printTokenized' flag. Add some comments.
6d61ebf Remove dead code which tests for boolan flag 'raw' and restore one indentation level.
da7af84 Added a function to lldb_private::Address:
289f058 One more fix to:
1608c87 If the use_thumb is set, pass llvm::Triple::thumb to the InstructionLLVM.ctor() unconditionally. Otherwise, pass m_arch.GetMachine().
4dfffa1 Symbol may not have a demangled name, use GetName to get the best name available in this case.
9935a86 FindFunctions was skipping the include_symbols section if it found a SymbolVendor.
b9e8f6e Added a way to resolve an load address from a target:
b5fe80c Let's also stick the svn info for the base directory into a file under the session directory, which also includes the command line used to invoke the test suite.
5ab7fba RunThreadPlan should set the plan to "not private" since it needs that, and then reset it to the original value when done.
2077f0d Add truth value testing to those lldb Python objects with the IsValid() method definitions. object.__nonzero__(self) is called to implement truth value testing and the built-in operation bool(), via a simple delegation to self.IsValid().
5a57090 Fixed an assert that could cause a crash when there was an unrecognized DW_TAG_base_type. Now it is a error printed to stderr.
668a3cd Fixed an issue where addresses would not get resolved for the last loaded section in the section load list.
914553f Removed some assertions that could crash the controlling program and turned them into warnings to stderr.
aeb922c Fixed an issue that broke expression parsing related to backing up all register values. There is some junk that was appearing at the end of the result the 'g' packet (read all register values). This function was being called in:
5ae3095 Forgot to check in this patch for Marco Minutoli.
3058197 Fixed the "mmap" to work on MacOSX/darwin by supplying the correct arguemnts.
613b873 Added an allocated memory cache to avoid having to allocate memory over and over when running JITed expressions. The allocated memory cache will cache allocate memory a page at a time for each permission combination and divvy up the memory and hand it out in 16 byte increments.
dc25905 Set the default "break list" level back to full.
2370a97 Fix the error message when an expression evaluation is interrupted by a crash/breakpoint hit to give the reason for the interrupt. Also make sure it we don't want to unwind from the evaluation we print something if it is interrupted.
3deea8f Fix a bug in the test case file (doesn't affect the tests.)
36bff9a Clang makes two breakpoints for some fairly simple lines, not sure why but no need to check for this in the testsuite.
8e62654 Fix bad test case; not all compilers are guaranteed to step into code inlined from the STL header file.
a79a21c Add implementation of built-in function len() for those lldb containers with unambiguous iteration support. So that we could, for example:
845d6da Fix places that were writing directly to the debugger's output handles to go through the appropriate channels instead.
f8b6525 Renamed the test cases more properly to test_lldb_iter_module/breakpoint/farme.
efe0b80 Add support for the 'G' packet not being implemented or returning an error. If we are asked to restore all register values, we need to fall back to restoring each register one by one.
c8bc1c3 Fixed an issue where large memory writes might not get chunked up into smaller packets in GDB remote.
9d2b321 Dump JIT memory requirements when "log enable lldb expr" logging is enabled.
5b53e8e Properly handle when commands are not unsupported in the GDB remote clients. Prior to this fix we would often call SendPacketAndWaitForResponse() which returns the number of bytes in the response. The UNSUPPORTED response in the GDB remote protocol is zero bytes and we were checking for it inside an if statement:
d45c3d7 Added the ability to get a 32 or 64 bit simple return value from the ABIMacOSX_arm plugin.
0de254a Updated to use the latest LLVM/Clang, to pick up JIT changes.
8c2d609 Fixed the default ARM registers to have the generic argument definitions and names.
997b1e8 Added generic register numbers for simple ABI argument registers and defined the appropriate registers for arm and x86_64. The register names for the arguments that are the size of a pointer or less are all named "arg1", "arg2", etc. This allows you to read these registers by name:
13d4ce9 Modified the lldb.xcodeproj to not have the headers in a copy files phase for lldb-core.
2f085c6 Added the ability to get the return value from a ThreadPlanCallFunction thread plan. In order to get the return value, you can call:
989816b Expand the ABI prepare trivial function call to allow 6 simple args.
1cd466f Breakpoint::Description with eDescriptionLevelBrief should just print the number of locations, printing the list of locations is pointless.
6497f77 For the purposes of setting breakpoints treat methods defined in the class and methods defined in a category on the class as the same.
87575f9 Clean up the test a little bit; and use lldbutil.get_GPRs(frame) to retrieve the general purpose register set.
30e4850 Test commit from a git-svn-cloned lldb/trunk repository.
0b0e3fc This patch add a "fake" attach waiting for a real implementation and solve the build break due to the lack of this method.
a0f3469 Headers have been moved to /includes/lldb/Interpreter. This patch reflects this change.
f387823 PATH_MAX is in limits.h on Linux.
de9eadc This method has been removed from the API. This fix the compilation breakage due to its presence.
aba367e For cases where a const function is inaccurately reported as non-const in the debug information, added a fallback to GetFunctionAddress, adding the const qualifier after the fact and searching again.
bbc18b6 When trying to print out the function name corresponding to the frame, if the function obj from the frame is not valid, try look for the symbol in the symbol table.
fb3058e Introduced support for UnknownAnyTy, the Clang type representing variables whose type must be inferred from the way they are used. Functions without debug information now return UnknownAnyTy and must be cast.
80ab18e Fix the InstructionLLVM::Dump() so that for Triple::arm, PC reads as the address of the current instruction plus 8. And for Triple::thumb, it is plus 4.
b656f4e Cleaned up the expected substring for output from the stop-hook mechanism.
c5272bf Construction of the RegisterReaderArg instance should happen after we have a valid base_addr, not before.
61d4f7a Cleaned up the ABI::PrepareTrivialCall() function to take three argument pointers:
3613ae1 Target::EvaluateExpression should suppress stop hooks.
d980518 Remove the custom working directory form the xcscheme.
53fe9cc Make sure you have an executable module before trying to print its name.
abb3b2d Add two utility functions:
75906e4 Moved all code from ArchDefaultUnwindPlan and ArchVolatileRegs into their respective ABI plugins as they were plug-ins that supplied ABI specfic info.
649116c Add ability to recognize/handle quotes around commands (e.g. '"target" create' works as well as 'target create').
fd1175c Add more docstrings for get_GPRs(frame), getFPRs(frame), and get_ESRs(frame).
c773060 More string matching criterion.
9400432 Add TestObjCTypeQueryFromOtherCompileUnit.py to test that when stopped in the 'main.c' compile unit, which has an external reference to symbols defined in foo.m, the type query:
65ec724 Fixed a bug that caused types to be incorrectly looked up. Queries for global types were made too specific -- including the current module and compile unit in the query was limiting the search when we wanted a truly global search.
728255b Add a utility function get_registers(frame, kind) to get the registers of a given frame and of a given kind. Also add three convenience functions get_GPRs(frame), get_FPRs(frame), and get_ESRs(frame) to get the general purpose registers, the floating point registers, and the exception state registers.
3d50a54 Add TestExprs2.py for recent check-ins related to the 'expression' subsystem.
b38df1e Make sure writing asynchronous output only backs up & overwrites prompt if the IOChannel input reader is the top input reader.
0ddf806 Fixed a bug in which expression-local variables were treated as being permanently resident in target memory. In fact, since the expression's stack frame is deleted and potentially re-used after the expression completes, the variables need to be treated as being freeze-dried.
2ba5ef6 Add a test case test_process_info_with_no_arg(self) to 'class PlatformCommandTestCase' for http://llvm.org/viewvc/llvm-project?rev=131089&view=rev.
6b07711 Revert some unintended project changes from my last checkin.
061b79d While implementing unwind information using UnwindAssemblyInstEmulation I ran into some cleanup I have been wanting to do when reading/writing registers. Previously all RegisterContext subclasses would need to implement:
1736fef Fix the wrong error message for "platform process info", i.e., with no pid(s) specified for the command.
3aeaed3 Fixed an issue with the MacOSX backchain register context where the pc was being returned for both the PC and FP.
5e47385 Change an unconditional log to a conditional one.
b299877 Fix docstring.
185e2c1 Add test scenario to verify 'eax' register is available when launching the i386 slice of a universal binary and 'rax' register is available when launching the x86_64 slice.
a458240 Fixed not being able to launch the i386 slice of a universal binary by adding a new "QLaunchArch:<arch-name>" where <arch-name> is the architecture name. This allows us to remotely launch a debugserver and then set the architecture for the binary we will launch.
8197496 Added support for reading untyped symbols. Right now they are treated as pointers of type (void*). This allows reading of environ, for instance.
b07c62a StepUntil should check whether the target of the step until is in the current function and if not return an error.
696cf5f Made expressions that are just casts of pointer variables be evaluated statically.
c446fe9 Deleted one too many characters...
bba1d8a Fix an unitialized pointer in ValueObject::CreateChildAtIndex.
9157f5d Modify the test case related to "target modules search-paths" as it suffers from code rotting.
ac91027 Add an API test script file for SBCommandInterpreter.
04427e1 Fix wrong test method name due to cut-and-paste.
5ddbe21 Replace calls to HandleCommand in lldb core with more appropriate direct function calls. As part of this, collect code that processes arguments & options for aliases into a single function.
ab2f066 For a test with unexpected success status, we also dump its session info into a unique file.
7fbd29f Make the log message & setter match for "dyld/shlib". The "ListLogCategories" output should really be auto-generated from the settings so you can't make this sort of mistake...
0039e68 Added the ability to cast pointer types to another type, no matter what the ValueObject is, as long as the ValueObject that is being asked to be casted is a pointer itself.
d4a094e Comment.
dedf087 Add comment for self.child_in_script_interpreter.
058a24d Use standard lldb enum -- lldb.eStopReasonBreakpoint.
311b1d6 Change the process iteration pattern to a more concise:
5579485 Always try and lookup the address in a register if it is encoded as an integer and the register byte size matches the size of a pointer. This removes the "--lookup" option.
e15511a Fix the "target stop-hook add" input reader so that it won't say the stop hook was added if the input was interrupted.
3a4622e Add a test script for verifying that the convenience variables:
882c554 Add ability to search backwards through command history for a particular substring, using ctrl-r key.
930fbb8 Use '-f c' to print each element of a string as a char.
1acbdc0 Forgot to check in this change with r130811.
c5f0b99 Minor cleanup: When asynchronous output comes along, back up over and delete the prompt before writing out the asynchronous output, rather than just going to a new line.
10de7d1 Change "frame var" over to using OptionGroups (and thus the OptionGroupVariableObjectDisplay). Change the boolean "use_dynamic" over to a tri-state, no-dynamic, dynamic-w/o running target, and dynamic with running target.
cf60768 Make the negative test more robust in light of more than one lldb prompts being emitted in one command invocation.
2ec2922 Add comments about 'image' being an alias for 'target modules'.
7e0dbcf Update the golden output strings to match against after the recent change.
13f96c3 Remove debug statement.
c4ca1b3 Use a more gentle way of shutting down the child process spawned during the test execution using pexpect. Change some child.expect() to child.expect_exact() as they try to match the string, not a regular expression.
e1f50b9 Added new OptionGroup classes for UInt64, UUID, File and Boolean values.
6af65cb Pre-load the Python script interpreter with the following convenience variables (from the ExecutionContext) each time it is entered: lldb.debugger, lldb.target, lldb.process, lldb.thread, lldb.frame.
f147af7 Remove type cast that was causing compiler warning.
388ca8f Make the driver listen for asynchronous output, rather than the IOChannel, so that it can be written out even while the IOChannel is collecting user input.
2edbaa2 Modify test_image_search_paths(self) to check for the pattern "%s-[^-]*-[^-]*" % self.getArchitecture() from the output of running 'image list -t 3' command which lists the triples of the image list.
ec80b9d Rename TestStopHook.py to the more appropriate TestStopHookMechanism.py, and update the docstrings.
c8ef3d9 Modified to exercise the 'target stop-hook add/disable/enable/delete/list' commands.
22ae967 A more robust pexpect-based test case for testing against the firing of stop hooks. Change one test sequence to detect the '** End Stop Hooks **' marker emitted by the stop hooks mechanism and check for whether the 'expr ptr' stop-hook has been run.
dc1d43a Add a test case to exercise the 'target stop-hook add' command without relying on pexpect to spawn an lldb child command. The test is not "correct" in that the '** Stop Hooks **' message emitted by the Target implementation is invoked asynchronously and is using a separate:
4495390 The 'target stop-hook add' command is missing the stop hook added message for one-liner.
60fe60e Add a one-liner option, for example, "-o 'expr ptr'", to the 'target stop-hook add' command.
a6297a7 Fix the compiler in the project (accidentally checked in with wrong compiler).
11513e8 Added a "--triple [<width>]" ("-t<width>" as a short option) option to the image list command so we can see the full triple for each target module.
4a34808 This patch captures and serializes all output being written by the command line driver, including the lldb prompt being output by editline, the asynchronous process output & error messages, and asynchronous messages written by target stop-hooks.
7616cb9 Add implementation of '==' and '!=' for SBFileSpec and SBModule. Modify a test case to take advantage of 'ths_module == that_module'.
ef80aab Adding support for fetching the Dynamic Value for ObjC Objects.
6ea16c7 Fix a typo in comment.
180546b Added the ability to set the Platform path for a module through the SBModule interface.
3063c95 Added the start of the CFI row production using the emulate instruction classes.
22e418a Update comments.
a2f86e8 Fix a bug introduced in my previous checkin, where the state was not properly restored after parsing "SBTarget". Indentation matters in Python. :-)
3a3d659 Add the Python rich comparison methods for SBBreakpoint, where GetID() returns the breakpoint ID and provides the semantics needed for '==' and '!='. And modify LLDBIteratorTestCase.lldb_iter_2() to use '==' between two SBBreakpoint's.
c622005 Fix a typo.
a3cd947 Modified to take advantage of the iteration protocol for our lldb container objects.
5949d28 Modified to take advantage of the iteration protocol for our lldb container objects.
d643c08 Modify the test suite and lldbutil.py to utilize the Python iteration pattern now that the lldb iteration protocol has been added to lldb.py module.
1409780 Move the iteration protocol of lldb objects to the auto-generated lldb Python module. This is so that the objects which support the iteration protocol are immediately obvious from looking at the lldb.py file.
56bbdaf Added the ability to specify dumping options (show types, show location, depth control, pointer depth, and more) when dumping memory and viewing as a type.
57b3c6b Added a new OptionValue subclass for lldb::Format: OptionValueFormat. Added new OptionGroup subclasses for: - output file for use with options: long opts: --outfile <path> --append--output short opts: -o <path> -A
8229390 Add a utility function smart_iter() which has knowledge of the getsize and the getelem method names of all the lldb container objects and returns an iterator object when passed an eligible lldb container object.
7f591d9 Use new string formatting operations in assert messages to simplify things.
67f51bb Add another test case for lldb_iter(), this time using SBTarget to get at its SBBreakpoint containees.
0400230 Removing Greg's working directory & startup arguments from the shared lldb-tool scheme.
47342d5 Change the rest of lldbutil.py's function names to all lower case formats to be consistent. And modify the test cases accordingly.
f25364b Add a test case for lldbutil.lldb_iter() which returns an iterator object for lldb objects which can contain other lldb objects. Examples are: SBTarget contains SBModule, SBModule contains SBSymbols, SBProcess contains SBThread, SBThread contains SBFrame, etc.
c07d451 Got the EmulateInstruction CFI code a lot closer to producing CFI data.
f2c7b28 Docstring.
efdc26a Docstring.
8a3b54e Update comment.
979cb5d Docstring changees.
eee9b86 Simplify the parsing of ARCH and Compiler specs.
1d29a85 Modify EmulateInstructionARM::SetArchitecture() to treat "arm" and "thumb" as wild card architectures for now, in order to fix the test failure for the 'arm_emulation' directory. There might be a better way.
888a733 Changed the emulate instruction function to take emulate options which are defined as enumerations. Current bits include:
318aaa0 For lldbutil.py, Change a bunch of function names to all lower case formats to be consistent. And modify the test cases accordingly.
a2cffd3 Add 'lldb_private' namespace where necessary to prevent ambiguity and resulting infinite loops.
e428d33 Move two functions around.
8badcb2 Renamed UnwindAssemblyProfiler to UnwindAssembly along with its source files.
9a1941b Even more renaming.
f6e287a More moving things around for the unwind plan and assembly unwind plug-ins.
bdc36bd Make SBBreakpointLocation::GetDescription() API to be consistent with SBTarget, i.e., with 'SBStream &description' first, followed by 'DescriptionLevel level'.
97eecb1 Put plug-ins into the correct directories as they were incorrectly located in a Utility directory.
1220eac Fix test failure for '-A i386'.
0b44a0e Update startstr argument of self.expect() to "a.out`sum(int, int)" to respond to recent change.
ff44ab4 Fixed the SymbolContext::DumpStopContext() to correctly indent and dump inline contexts when the deepest most block is not inlined.
eda9065 Convert the rest of the test suite to use the lldbutil.get_description() utility function.
bc1a93e Add a simple utility function get_description(lldb_obj, option=None) to lldbutil.py and use it from TestTargetAPI.py.
47da810 Fix up how the ValueObjects manage their life cycle so that you can hand out a shared pointer to a ValueObject or any of its dependent ValueObjects, and the whole cluster will stay around as long as that shared pointer stays around.
e78d2b6 Add test cases for the SBTarget.GetDescription() API which takes an extra lldb::DescriptionLevel enum.
f854c51 We are only interested in logging the child's output to sys.stdout.
ebf1587 Fix comment.
00b8112 Make test_connect_remote() more robust by waiting on the server ready message before issuing the 'process connect ...' command.
e144eaf Reroute the blog link to the LLVM blog site.
91c9dcf Erase from a string instead of using substr when you don't really need to.
d938c00 Fix a typo.
f0a0a71 Remove old emulation test data files.
2c11caa Modify to use the new test files.
f3a8f39 Reformat the emulation test data files.
dfb2e20 Change code for reading emulation data files to read the new file format. (The newly formatted files will go in as a separate commit in a few minutes).
17cd995 Did some work on the "register read" command to only show the first register set by default when dumping registers. If you want to see all of the register sets you can use the "--all" option:
cafc3c6 Make the test case more robust by installing a teardown hook to kill the inferior rather than calling "process kill" explicitly at the end of the test.
2e92229 Conditionalize the self.expect("dis -f", ...) test scenario to check on Intel disassembly only when the test is currently running against the relevant architecture.
281aed3 Add a HideStdout() method to our TestBase class and call it from TestAbbreviations.py and TestAliases.py. Pass the keyword argument 'check=False' to:
fc78af3 Fixed a case where if a function, inlined function, or global with a mangled name had a DW_AT_name that was the same string as the DW_AT_MIPS_linkage_name, then it would get added twice to the DWARF index.
26d132f Hopefully fix the last fallout of 'commands' to 'command' change.
a2486f2 Use self.TraceOn() API.
09008d0 Use self.TraceOn() API to decide whether to print debug output.
c08770b More iteration on the new option value stuff. We now define an OptionValueCollection class that can be subclassed to provide access to internal settings that are stored as ObjectValue subclasses.
e972845 Made the constructors public for all OptionValue classes so we can instantiate them, and also moved the code that can get the specific subclass for a OptionValue into the OptionValue class.
c940887 Added a blog page with a description and tutorial on using the new "command regex" command.
9e4c3d7 Fixed some more 'commands' to 'command' change.
4ff200e Replace 'commands' with 'command', and update to the latest prompt.
bd81ebe Use self.TraceOn() API.
40e4824 Renamed the "commands" command to "command" as this is the way we were using it everywhere internally.
ff81248 Use self.TraceOn() API.
44134ae Fix wrong comment.
da414c3 Use self.TraceOn() API.
36961a4 Add a simple test scenario for 'command regex' invocation and subsequent use.
a82853d Add a test scenario for 'source list -b' which shows the line table locations from the debug information which indicates valid places to set source level breakpoints.
4a5aeb3 Remove ARMDissasembler.framework from project (it accidentally got included in a recent commit).
1cee1e6 Fixed an issue where breakpoint were being displayed when using the "source list" command when the file was implicit or found from a symbol.
27a8727 Added the ability for arrays and dictionaries to contain only specific types of values.
f91b735 Fix typo (accidental second 'const' qualifier).
d12aeab Added the ability for users to create new regex commands. To do this currently, it must be done in multi-line mode:
7406c39 Added the start of a new option value system that we can use for many things around the debugger. The class isn't hooked into anything yet, but it will be soon.
6b8d3b5 Add the infrastructure to test instruction emulations automatically. The idea is that the instruction to be emulated is actually executed on the hardware to be emulated, with the before and after state of the hardware being captured and 'freeze-dried' into .dat files. The emulation testing code then loads the before & after state from the .dat file, emulates the instruction using the before state, and compares the resulting state to the 'after' state. If they match, the emulation is accurate, otherwise there is a problem.
edce677 Rename test/threads to python_api/lldbutil; it uses lldbutil functions to print stack traces.
df18b15 Use self.TraceOn() API.
41c56fa General cleanup on the UserSettingsController stuff. There were 5 different places that were dumping values for the settings. Centralized all of the value dumping into a single place. When dumping values that aren't strings we no longer surround the value with single quotes. When dumping values that are strings, surround the string value with double quotes. When dumping array values, assume they are always string values, and don't put quotes around dictionary values.
512cc33 Use self.TraceOn() API.
244a86b Converted to use SBProcess.LaunchSimple(). And use self.TraceOn() API.
eb60e1f Converted to use SBProcess.LaunchSimple().
b015c21 Converted to use SBProcess.LaunchSimple().
ed97643 Use self.TraceOn() API.
257c608 Converted to use SBProcess.LaunchSimple() API. And use self.TraceOn() in order to print more debug output.
7dbe42d Converted to use SBProcess.LaunchSimple(). And use self.TraceOn() API.
0d073ef Converted to use SBProcess.LaunchSimple().
8c2fd48 Only print more debug out when self.TraceOn() returns True.
a52c0e5 Converted to use SBProcess.LaunchSimple().
c391239 Modify docstring.
ab6378a Add a TraceOn(self) method to the base test class, which returns True if we are currently in trace mode (-t to dotest.py), i.e., tracing the lldb command execution. Change TestInferiorCrashing.inferior_crashing_python(self) to check this flag in order to print the stack trace of the inferior thread.
6fb32b0 Converted to use SBProcess.LaunchSimple().
4db6c92 Converted to use SBProcess.LaunchSimple().
a263d09 Converted to use SBProcess.LaunchSimple().
a3bb19b Converted to use SBProcess.LaunchSimple().
47524b6 Converted to use SBProcess.LaunchSimple().
eac25db Convert some tests to use the SBProcess.LaunchSimple API requiring only args, envs, and cwd from SBProcess.Launch which takes many more arguments that are useless for the test scenario.
52c8b6e Added a new option to the "source list" command that allows us to see where line tables specify breakpoints can be set in the source. When dumping the source, the number of breakpoints that can be set on a source line are shown as a prefix:
9ce9c3c Fixed an issue where if you specify an architecture from the command line like: $ lldb --arch i386-unknown-unknown a.out
0c130e4 Rename some variables, no functionality change.
44dc9d3 Add a test script for exercising the "taregt create", "target list", and "target select" commands.
c7ae75a Add header comment.
0b4dfac Add docstring.
37ac00b Modify some docstrings.
abe0fed Centralized a lot of the status information for processes, threads, and stack frame down in the lldb_private::Process, lldb_private::Thread, lldb_private::StackFrameList and the lldb_private::StackFrame classes. We had some command line commands that had duplicate versions of the process status output ("thread list" and "process status" for example).
e41494a Add support for "dynamic values" for C++ classes. This currently only works for "frame var" and for the expressions that are simple enough to get passed to the "frame var" underpinnings. The parser code will have to be changed to also query for the dynamic types & offsets as it is looking up variables.
9994a0b Fix comment typo.
87a58ce Work around a llvm gcc bug where the name of a reference doesn't include the "&".
3035967 Get rid the of set membership test (log(m)) and, instead, use an index variable 'i' which advances when src collides with a purged slot. Hi Stephen, you're welcome to overwrite/or improve upon this version. Thanks.
0cbc573 Update both the src and dst pointers at the end of the loop. Stephen Wilson is working on a better performing patch in the meantime.
388c057 Optimize address range coalescing.
33cd0c3 Forgot to check in this change with http://llvm.org/viewvc/llvm-project?view=rev&revision=129542.
6b41e0b Rewording of assert message.
d2dff7b Add a test to check that lldb reliably catches a crashing inferior (both command and Python API).
2a8c338 Updated LLVM to pick up fixes to the ARM instruction tables.
5e342f5 Added auto completion for architecture names and for platforms.
55e569e Fix bug where source & target registers were swapped in an emulation function.
4f347cb Have "-h" print just the command arguments, and "-h -v" print the examples as well.
523c554 Fix various minor bugs in the ARM instruction emulation code.
b9223bf Revert newer xcscheme project file to avoid conflict with older Xcode versions.
143fcc3 Added two new classes for command options:
b72d0f0 Moved the execution context that was in the Debugger into the CommandInterpreter where it was always being used.
d0e6b57 Added a few more commands, but I mainly wanted to include how to run lldb with the same program arguments for a process over and over without having to specify them (like you can with gdb with the "--args" option).
dbeb3e1 Order of initialization lists.
d7d3af7 Fix struct vs. class warning.
1f954f5 Implement ARM emulation function to handle "SUBS PC, LR and related instructions".
0fe5a53 Fix various things in the instruction emulation code:
9335643 Really fix the test suite crasher this time.
0e0636d Fix a test suite crasher.
ec2d978 Add missing headers.
62794e4 Add the ARM instruction emulation makefile.
ec113d4 Add makefile support for the ARM instruction emulation plugin.
6e49b96 linux: add missing arguments to FindFirstModuleForFileSpec
f15996e Modified the ArchSpec to take an optional "Platform *" when setting the triple. This allows you to have a platform selected, then specify a triple using "i386" and have the remaining triple items (vendor, os, and environment) set automatically.
baf01e0 Removed use of NSEC_PER_SEC.
7a198ac Add a missing header
63fe126 linux: remove ProcessLinux::FindProcesses
21f0d4b Translate dwarf register numbers to internal register numbers before trying to look them up in register contexts, in the emulation callback functions that read & write the frame registers.
069b8da Update the linux platform to use the new Host::FindProcesses functionality.
af59180 Add Emulate and DumpEmulation to Instruction class.
f2e3faf Use the same colors in the LLDB/GDB table as the sidebar so things look consistent and also to lighten up the page a bit.
ac24152 Removed a stray '\' character.
ea69d6d Convert "process" read/write callback functions to "frame" read/write callback functions.
080bf61 Add the rest of the mechanisms to make ARM instruction emulation usable/possible.
06d7cc8 Added a speed test to the GDBRemoteCommunicationClient and GDBRemoteCommunicationServer classes. This involved adding a new packet named "qSpeedTest" which can test the speed of a packet send/response pairs using a wide variety of send/recv packet sizes.
64f000b Add a Python script which launches a program from within lldb and loop until the process stops for some reason. main.c (compiled into a.out) is used as an example in the README-run-until-faulted file.
2570825 Some OpenBSD patches from Amit Kulkarni.
381f968 Get rid of LONG_LONG_MAX and ULONG_LONG_MAX, and use LLONG_MAX and ULLONG_MAX respectively.
0cd8be8 Modify test_process_list()'s expect sub-strings to be up-to-date.
919ee60 Add TestSymbolAPI.py to test the newly added SBSymbol and SBAddress APIs:
ff39f74 Added the ability to get a broadcaster event name for a given broadcaster event.
0de3719 Remove unneeded ExecutionContextScope variables.
8d8e3ed Little bit of cleanup, and added a few new bits.
8d24b4a Fix a few typos in the previous commit.
93767b8 Add code to emulate VLD1 (single element to all lanes) ARM instruction.
7b88094 Add code to emulate VST1 (single element from one lane) ARM instruction (more floating point stores).
1e542e3 Add code to emulate VST1 (multiple single elements) ARM instruction (floating point store).
b6281b1 Add code to emulate VLD1 (single element to one lane) floating point register load instruction (ARM) .
e1a94e4 Revert changes that caused this scheme to be hidden in certain cases.
9121b35 Add code to emulate VLD1 (multiple single elements) ARM instruction.
424652f Add code to emulate VSTR ARM instruction (store a floating point register).
917ad35 Add code to emulate the VLDR Arm instruction (load a floating poitn register).
bf5a66b Add "Bits64" utility function.
563ce6a Take advantage of the newly added SBSymbol.GetType() API to check whether we have a Code symbol and do disassembly on it.
b0e68d9 Added some functions to our API related to classifying symbols as code, data, const data, etc, and also for SBAddress objects to classify their type of section they are in and also getting the module for a section offset address.
7df6fc4 Add a generator to iterate through the code symbols for a given target. To be modified to take advantage of the new SBSymbol API which checks a symbol for its type.
fa3a16a Convert ValueObject to explicitly maintain the Execution Context in which they were created, and then use that when they update themselves. That means all the ValueObject evaluate me type functions that used to require a Frame object now do not. I didn't remove the SBValue API's that take this now useless frame, but I added ones that don't require the frame, and marked the SBFrame taking ones as deprecated.
5c4b160 Add GetFrameWithStackID to the StackFrameList and the Thread (which routes to its StackFrameList.)
4f60558 Modify ARM instruction tables to allow for specifying floating point variants.
b5871fe Add a LaunchSimple API that is nicer to use for quick scripts.
850a6b2 Modify self.expect() patterns to react to API change for SourceManager.DisplaySourceLinesWithLineNumbers().
0815031 A a simple test file for some lldb 'platform' commands. Add a missing result.SetStatus() stmt to the CommandObjectPlatformList::Execute() impl.
66b40fa Add a test directory.
74467fe Fill in code for EmulateSTRDImm and EmulateSTRDReg, to emulate the STRD (immediate) and STRD (register) instructions.
337836b Add an option to specify the symbols to disassemble instead of the existing 'num of symbols to disassemble' option. If both are present, the 'symbols to disassemble' overrides the 'num of symbols to disassemble'.
24bc5d9 Many improvements to the Platform base class and subclasses. The base Platform class now implements the Host functionality for a lot of things that make sense by default so that subclasses can check:
eab301f Fill in EmulateLDRDRegister to emulate LDRD (register) instruction.
f4c0d1d Minor import statement change.
1697dd7 Fill in EmulateLDRLImmediate to emulate the LDRD (immediate) ARM instruction.
983f6fd linux: create thread plans for stepping thru PLT entries
ce47732 elf: synthesize symbols for PLT entries
e98b958 Fix typo in previous check-in.
9b01e48 elf: add support for ELF relocation entries
67d9f7e linux: initial support for 'real' signal handling
029bc71 give subclasses access to UnixSignals::m_signals
d42b3cc Fill in EmulateSTRImmARM to emulate the STR (immediate,ARM) instruction.
ef44000 Fill in EmulateSTRBImmARM to emulate the STRB (immediate, ARM) instruction.
5168b6c Fill in EmulateSTREX to emulate the STREX ARM instruction.
bb73710 The example had gotten stale, so I made it work again, and for fun printed out the frame registers as well.
b01a654 Updated the web site with a getting started with LLDB and also some resources to help GDB users figure out the equivalent commands in LLDB.
60f19d5 Unfortunately, sranddev() is not available on all platforms so seed using the current time instead.
4cccd53 Fill in code in EmulateSUBReg to emulate the SUB (register) ARM instruction.
7482324 Can't count on the particular number of modules loaded into a basic C executable.
c08ed38 Fill in code in EmulateADDRegShift, to emulate the ADD (register-shifted register) ARM instruction.
f960048 Can't just call "rand" to get a random port, 'cause then you'll get the same sequence in two lldb's. This makes running lldb on lldb not work very well.
d05b490 Add subtraction context.
89c6d58 Add missing encodings for EmulateMOVRdImm (MOV register) function.
9aaceb1 Add the ability to invoke lldb's disassemble command on the symbols digested from the 'image dump symtab' command. The number of symbols to disassemble can be specified by the '-n Num' option, or unlimited if not specified.
2efc7c6 Doc string change.
afd1904 Add an initial version of lldb-disasm.py script whose purpose is to iterate through all the symbols for an executable image and to issue the lldb 'disassemble' command on each symbol. The initial version just dumps the symbol table.
bb48f0b Fix single quote characters throughout the ARM emulation stuff.
17842ec Add a missing include required on Linux
889fbd0 Added the ability to get the min and max instruction byte size for an architecture into ArchSpec:
e6c6f49 Updated LLDB to use a recent LLVM/Clang, pulling in stability fixes for the ARM and Thumb disassemblers.
f4aad90 linux: minor updates to account for recent namespace changes
3967cef Add PlatformGDBServer and ProcessGDBRemote to the build system.
ba083b2 Add a missing include required on Linux
bbedb7b Revert the scheme.
50daf77 Simple fixes for the gdb remote process plugin on Linux.
149731c Cleaned up the Disassembler code a bit more. You can now request a disassembler plugin by name on the command line for when there is more than one disassembler plugin.
7bc3908 Made the lldb_private::Opcode struct into a real boy... I mean class.
b344843 Fixed the LLDB build so that we can have private types, private enums and public types and public enums. This was done to keep the SWIG stuff from parsing all sorts of enums and types that weren't needed, and allows us to abstract our API better.
3d79d34 Fix small bug in ThumbExpandImm_C; arguments to a call to 'bits' were in the wrong order.
baf1f64 Add missing encodings for EmulateLDRRtRnImm (ARM insn emulation funciton).
15f2d43 Switch the "print" alias to "expression --".
58e26e0 Did a lot more work on abtracting and organizing the platforms.
b577284 Add missing cases to switch statements & remove 'default'.
6460790 Silence clang warnings.
0bfa859 Turns out that the test failure wrt:
d1fbbb4 linux: simple support for process input and output
47f0785 Eliminate a pile of "type qualifiers ignored on function return type" warnings.
17ddd25 Update autogen'd LLDB_vers.c.
4b274e8 Add a missing include needed on Linux and remove a trailing comma.
76fd5dd linux: add Host/linux subdirectory
1201317 Checked in a modified test script to go with rdar://problem/9173060:
3600d49 linux: PlatformLinux improvements
87d939a Fix test suite failures by modifying the script for testing abbreviations. Failures were due to new commands introduced.
562ed0e Fix compile warnings wrt LLDBWrapPython.cpp.
cb8977d Added new platform commands:
41d8a5c Added Mac OS X build instructions and included the Linux build instructions that Stephen Wilson sent out.
e221288 More fixes for ARM instruction emulation code: - Remove duplicate write from EmulateLDRRtPCRelative. - Add a missing encoding to EmulateADDSPImm. - Fix minor problems in Thumb instruction tables.
4d3a89e Added AVX support to the Intel portion of debugserver. AVX autodetection is not yet implemented, but the structures and register reading/writing code are there.
61d043b Split the GDBRemoteCommunication class into three classes: GDBRemoteCommunication - The base GDB remote communication class GDBRemoteCommunicationClient - designed to be used for clients the connect to a remote GDB server GDBRemoteCommunicationServer - designed to be used on the server side of a GDB server implementation.
e56493f Add "up" and "down" aliases.
7a4c8ea Clean up a few places where SetOptionValue was using the global optarg, rather than the option_arg value that was passed in.
aa3e3e1 Add the ability to disassemble "n" instructions from the current PC, or the first "n" instructions in a function. Also added a "-p" flag that disassembles from the current pc.
c54840c Tidy up the stop hook printing when only one thread matches, and there is only one hook.
b622560 Added missing files.
e86cbb9 Abtracted the innards of lldb-core away from the SB interface. There was some overlap in the SWIG integration which has now been fixed by introducing callbacks for initializing SWIG for each language (python only right now). There was also a breakpoint command callback that called into SWIG which has been abtracted into a callback to avoid cross over as well.
c4a2344 Add options to allow for specifying an option string when spawning gdb and for executing command(s) right after starting up gdb. Update the README file to show an example of using these to pass '-arch armv7' to gdb and to execute gdb command to set shared library path substitutions before loading iOS4.3 sdk's /usr/lib/libSystem.B.dylib and disassembling the 'printf' function.
1cd3c80 Fix a typo in the message string.
a733c04 Added real user/group id, effective user/group id, and parent process ID to the ProcessInfo.
091e0fa Move the building of llvm/clang and the swig wrappers into the lldb-core target.
ce16665 Fixed a warning with gcc 4.2 when the Xcode project falls back to the system compiler when clang isn't around to do the compiling.
4fdf760 Split all of the core of LLDB.framework/lldb.so into a static archive that can be linked against. LLDB.framework/lldb.so exports a very controlled API. Splitting the API into a static library allows other tools (debugserver for now) to use the power of the LLDB debugger core, yet not export it as its API is not portable or maintainable. The Host layer and many of the other internal only APIs can now be statically linked against.
ce1eefd Modify disasm.py to better deal with the objc method name which has ':' in them. Add a utility similar to disasm.py, but which provides a shell-like environment for invoking llvm-mc.
b1888f2 Added more platform support. There are now some new commands:
10ff991 Add cases to test that two template instantiations of std::vector<long> and std::vector<short> in the same compilation module show up as different types for lldb debugger.
3e40797 Fix various small problems with EmulateInstructionARM::EmulateSTRRtSP.
70c5562 Relax the constraint on the types of ValueObjects that we'll by default try the ObjC runtime for print object to Pointer AND Integer (from just pointer.)
8d681f5 Make all the codee that attempts to read the PC consistently use ReadCoreReg (which 'does the right thing', adding to pc when needed); fixed places in code where extra addition was being passed along.
e258440 Fix a problem where we were looking up the class pointer in the {class/sel -> implementation} cache for a objc_msgSendSuper call - where we should have looked up the class's super-class.
53bfd06 Get ObjC stepping working again when the process is not the default host architecture.
0251bc7 Tidy up the input file given to 'llvm-mc -disassemble' and also append the gdb assembler code to the memory dump.
9c407f5 Add a Python script to take an executable, run gdb to disassemble a function, read the memory contents of the function, and then feed the bytes to the 'llvm-mc -disassemble' command.
d793146 As a simple measure, output the lldb version and the svn info for which the testsuite is run against.
8ce836d Add code to emulate STRH (Register) Arm instruction.
2b03ed8 Fix various small bugs found in the instruction emulation functions.
1d080bd Updated LLVM/Clang to the latest release, to pick up AVX disassembly support.
04fdd67 Now that we have the debug map issues fixed, change the Xcode project to build lldb, LLDB.framework and debugserver all with just DWARF (no dSYM).
f1b73af Added a fix that should help incorrect type uniquing. There was an issue for templatized types that could cause parts of a std::vector (and I am sure other STL types) to be incorrectly uniqued to each other wreaking havoc on variable display for types within the same executable module.
06cfe2e Make the first vector of "long" instead of "int" so we can tell the difference easier since "short" ends up with "short int" in the template allocators.
13acfc9 Added a test case for unique types. In the test case there are two std::vector types that have different contents. Currently LLDB is incorrectly uniquing, on MacOSX, the std::vector _VectorImpl class from the two different vector templates. The DWARF looks like:
dd506e1 Added a fix to not re-use object files when doing DWARF with debug map.
279584c Updated to LLVM/Clang revision 127600.
52ce561 Fix makefile builds when llvm is configured with -enable-shared.
f6aaf7d Turn labels into actual switch cases.
015eb23 Add a missing include.
7304147 Add a test directory stop-hook to test the newly added "target stop-hook" command. This uses pexpect module to spawn a 'lldb' program and uses pseudo-TTY to talk to the child application.
8a3c043 Add pexpect-2.4 (a pure Python module for controlling and automating other programs) to the test directory.
4f52c40 Discover the 'lldb' executable in the setUp() hook of the base test class.
26901c8 Add a mechanism to discover the full path of the 'lldb' program into the test driver. This provides a way to potentially provide conversational interactions with 'lldb' in the test suite.
d60d94a Add a first pass at a "stop hook" mechanism. This allows you to add commands that get run every time the debugger stops, whether due to a breakpoint, the end of a step, interrupt, etc. You can also specify in which context you want the stop hook to run, for instance only on a particular thread, or only in a particular shared library, function, file, line range within a file.
a4fede3 CommandInterpreter::HandleCommands should take its commands as a "const StringList &" since it doesn't modify it...
4a9d790 Fix a few things in the CommandArguments table.
8053904 Declare some const functions as const.
a526823 Fix a typo in a comment.
8d237a2 Add test cases to exercise the SBThread.GetProcess() API. We launch the process using the SBTarget.Launch() API, stop at a breakpoint, get the stopped thread, and verify that the pid of the stopped thread's process is equal to the pid of the process returned by SBTarget.Launch().
8054ba3 Minor typo fix and TAB removals.
ce207c1 Add some explanatory comments.
4a384a9 Add a test case test_run_to_address() to exercise the SBThread.RunToAddress(lldb::addr_t addr) API. The test itself is not working yet.
a846cc3 Fixed the -r parameter to the disassemble command so that it actually triggers raw output.
650fef9 Add test cases to TestThreadAPI.py to exercise SBThread.StepOver() by stopping at a breakpoint, doing three step-over's, then verifying that the correct source line number is reached.
912675f Add a test case to make sure that all the settings that currently ought to exist are actually there.
2a45681 The UserSettings controllers must be initialized & terminated in the correct order. Previously this was tacitly implemented but not enforced, so it was possible to accidentally do things in the wrong order and cause problems. This fixes that problem.
d09dcac Test cleanup. Check for the full caller symbol of malloc -- b(int).
ef6635b Add Makefile support for the Platform plugins.
c97bfdb Centralize the GDB remote timeout value into the GDBRemoteCommunication as a member variable (m_packet_timeout which is a value in seconds). This value is then used for all packets sent to/from the remote GDB server.
69af39d Add test cases for Python SBThread.StepOut() API by stepping out of a malloc call where the call site is at function b(). Verifies that after the thread.StepOut(), we are at the correct line within function b.
d151c8a Fixed a bug where the disassembly syntax specified for the ARM disassembler was wrong, causing the disassembler to fail to initialize.
e59b869 There's no sense checking for < 0 with a return type of size_t:
88e7859 Add an expectedFailure decorator to the test_connect_remote() test case. It fails when running within the context of the test suite, but succeeds when running alone.
e4b9c1f LLDB now has "Platform" plug-ins. Platform plug-ins are plug-ins that provide an interface to a local or remote debugging platform. By default each host OS that supports LLDB should be registering a "default" platform that will be used unless a new platform is selected. Platforms are responsible for things such as: - getting process information by name or by processs ID - finding platform files. This is useful for remote debugging where there is an SDK with files that might already or need to be cached for debug access. - getting a list of platform supported architectures in the exact order they should be selected. This helps the native x86 platform on MacOSX select the correct x86_64/i386 slice from universal binaries. - Connect to remote platforms for remote debugging - Resolving an executable including finding an executable inside platform specific bundles (macosx uses .app bundles that contain files) and also selecting the appropriate slice of universal files for a given platform.
791af3b Fix ObjectFileElf::GetEntryPointAddress()
8be525a Add Makefile support for the new DynamicLoaderStatic plugin.
e45140f I didn't notice there was already an ObjectFile::GetEntryPoint. Move that over to GetEntryPointAddress 'cause that's more consistent with other functions in ObjectFile, do the mutatis mutandi and also in the ELF case I return a section offset address rather than a bare load address.
e84d4fd Reverting the part of the debug-in-ofile patch from earlier today that removes them from the shared module list. That was causing a bunch of asserts. Greg is working on a better fix.
2877594 Add a method "GetEntryPoint" to the ObjectFile class, and implement it on MachO & ELF - though the ELF implementation is probably a little weak. Then use this method in place of directly looking for "start" in the ThreadPlanCallFunction constructor to find the stopping point for our function evaluation.
9d352ce Add thread state initialization to the thread where the interactive interpreter is run (which is separate from the thread where Py_Initialize is called, where this normally gets set up).
329bb8b Add an extra twist of stopping the inferior in a breakpoint, and then continue till it's done. We should still see the entire stdout redirected once the process is finished.
edc0524 Add test cases for SBTarget.Launch() API with the stdout of the inferior redirected to a file.
586a3e6 Add TestThreadAPI.py file to house the Python SBThread API test cases. Currently it has only test cases for SBThread.GetStopDescription() API.
2cd9418 Don't cache .o files in the debug map + DWARF in .o files. If we cache them then we end up using older .o files with out of date section remappings if we debug, compile + fix, and debug again.
42da4da Add a test case ProcessAPITestCase.test_remote_launch() which tests SBProcess.RemoteLaunch() API with a process not in eStateConnected, and checks that the remote launch failed.
bd321c5 Added a DynamicLoaderStatic plug-in that will act as a static dynamic loader. It will just load all files exactly where the files state they are (file addresses == load addresses). This is used when the llvm::Triple::OSType is set to llvm::Triple::UnknownOS or llvm::Triple::NoOS.
a7951be Add a test case for the lldb command 'process connect'. We start a fake debugserver listening on localhost:12345 and issue the command 'process connect connect://localhost:12345' to connect to it.
d3475a2 Allow the macosx frame backchain to use 32/64 bit as the selector when chosing which FP back-chain methods to use since we can rely upon generic register numbers after that.
7d71b1a Add docstrings for unittest framework's test methods.
1f968f4 Change the CFLAGS variable assignment operator to ?= (conditional variable assignment operator). This allows us to override CFLAGS on the command line:
e96c72b Add TestObjcOptimized.py under the objc-optimized directory to test that objective-c expression parser continues to work for optimized build.
5acc343 Add objc source file and Makefile. Test case to follow.
1a4d5e7 Add the ability for the test suite to specify a list of compilers and a list of architectures on the command line. For example, use '-A x86_64^i386' to launch the inferior use both x86_64 and i386.
3809340 Expose ConnectRemote API through SBTarget and SBProcess. Patch verified by Greg Clayton prior to checkin.
50339fe Fixed a bug in the expression parser where the 'this' or 'self' variable was not properly read if the compiler optimized it into a register.
b27771d Add code to emulate RFE Arm instruction.
51ed1b6 Add TestDisasmAPI.py which exercises the newly added SBFunction/SBSymbol.GetStartAddress(), among other things:
11555f2 Add code to emulate UXTH Arm instruction.
8ce96d9 Add code to emulate UXTB Arm instruction.
868198b Add code to emulate SXTH Arm instruction.
6bf6516 Add code to emulate SXTB Arm instruction.
77356a0 Add TestTargetAPI.py:
40b1a6c Fix bug where bitwise-AND was being used and it should have been bitwise-OR.
dcc11b3 Add code to emulate ADD (immediate, Thumb) Arm instruction.
89f1aa7 Export the ability to get the start and end addresses for functions and symbols, and also allow clients to get the prologue size in bytes:
5c1e2ed Add code to emulate MUL Arm instruction.
afb8186 Added a missing API call in SBTarget that enables one to get anything in a SBSymbolContext filled in given an SBAddress:
291a3e9 Add code to emulate LDRSH (register) Arm instruction.
d2765fc Clarified the docstrings for int_to_bytearray() and bytearray_to_int().
c7129c3 Add some function docs.
a6e29c2 Add some comments.
d2fac09 Add code to emulate LDRSH (literal) Arm instruction.
4c70f28 Add two utility functions to lldbutil.py:
78fb563 Add code to emulate LDRSH (immediate) Arm instruction.
672f311 Add code to emulate LDRSB (register) Arm instruction.
60a544f Add an API SBProcess::GetByteOrder() and add test cases which utilizes GetByteOrder(), among other SBProcess APIs, to write (int)256 into a memory location of a global variable (int)my_int and reads/checks the variable afterwards.
5f59391 Add code to emulate LDRSB (literal) Arm instruction.
a5e28af Add code to emulate LDRSB (immediate) Arm instruction.
27f0f40 Fix wrong placement of skipUnless() decorator.
aaea42e Add test methods for SBProcess.WriteMemory() API to the TestProcessAPI.py file. This makes the number of total tests equal to 201.
0e6bc95 Add code to emulate LDRH (register) Arm instruction.
36a0f74 Add TestProcessAPI.py which exercises some Python SBProcess API. In particular, this tests the SBProcess.ReadMemory() API, which, due to SWIG typemap'ing, expects 3 arguments (the location to read from, the size in bytes to read, and an SBError object), and returns the result as a Python string object.
2396b9f Look for swig in /usr/bin and /usr/local/bin.
952b538 Add code to emulate LDRH (literal) Arm instruction.
708b447 Add register context for i386 on Linux.
0491b3b Add code to emulate LDRH (immediate, Thumb) arm instruction.
fc30997 If the user sets a working directory path using "process launch -w <path>", honor that dir path; otherwise, use the thing the debugserver is started with.
da9ab6f Simplify the dictionary setting for test_set_working_dir_* methods.
4f797d8 Call self.setTearDownCleanup() and pass a proper dictionay to properly cleanup the intermediate files built with the same dictionary during test execution.
a29321a Add a test case to exercise the process launch flag of '-w <path>' which sets the current working directory when running the inferior. Radar filed:
40e2479 Renamed the Python test file to be TestProcessLaunch.py.
803c979 Renamed the test class to be ProcessLaunchTestCase.
25d8837 Simplified the code a little bit.
cba2be3 Renamed test/process_io directory to test/process_launch, in preparation to add additional tests related to 'process launch' command.
a5a34bd Add readme on the version of emacs that works with lldb-enhanced gud.el, for Stuart Hastings. :-)
01d6157 Add emulation for Encoding A1 of A8.6.97 MOV (register).
7677f45 The lldb-enhanced gud.el does not work on emacs 22.1.1 (dumb terminal). This is the error I got:
a2f7423 Fixed CommandReturnObject::SetImmediateErrorFile() to set the correct stream.
696b4ef Fix typos in the opcode entries for branch instructions.
b14b00c When making a DataExtractor from a Value that's got a ClangType, set the AddressByteSize from the AST Context.
59e6ab7 Add emulation for BXJ (Branch and Exchange Jazelle), assuming that the attempt to switch to Jazelle state fails, thus treating BXJ as a BX operation.
a1f0b72 linux: Use ArchSpec::GetCore and the ArchSpec::Core enums.
f7cc64d linux: Remove a local ObjectFileELF version of GetArchitecture.
7f513ba Host: linux: Use llvm::sys::getHostTriple for the default host ArchSpec.
b7af465 ArchSpec: Do not depend on Host::GetArchitecture.
b9f02cf Add emulation methods for Bitwise Bit Clear (immediate and register) operations.
15a7a6b Add emulation methods for "SUB (immediate, Thumb)" and "SUB (immediate, ARM)" operations.
a695f95 Add emulation for "ADR" operations. Add a ThumbImm8Scaled() convenience function and rename the original ThumbImmScaled() function to ThumbImm7Scaled().
c9e747f Modify EmulateSUBSPImm() to handle the cases with generic Rd value instead of Rd == 13. Add opcode entries for the generic "sub (sp minus immediate)" operations.
9b38177 Add emulation methods for "SBC (immediate)" and "SBC (register)" operations.
940b103 Abtracted all mach-o and ELF out of ArchSpec. This patch is a modified form of Stephen Wilson's idea (thanks for the input Stephen!). What I ended up doing was: - Got rid of ArchSpec::CPU (which was a generic CPU enumeration that mimics the contents of llvm::Triple::ArchType). We now rely upon the llvm::Triple to give us the machine type from llvm::Triple::ArchType. - There is a new ArchSpec::Core definition which further qualifies the CPU core we are dealing with into a single enumeration. If you need support for a new Core and want to debug it in LLDB, it must be added to this list. In the future we can allow for dynamic core registration, but for now it is hard coded. - The ArchSpec can now be initialized with a llvm::Triple or with a C string that represents the triple (it can just be an arch still like "i386"). - The ArchSpec can still initialize itself with a architecture type -- mach-o with cpu type and subtype, or ELF with e_machine + e_flags -- and this will then get translated into the internal llvm::Triple::ArchSpec + ArchSpec::Core. The mach-o cpu type and subtype can be accessed using the getter functions:
2434884 Renamed macro definition of CPSR_C to be CPSR_C_POS to avoid confusions and subtle bugs.
90e607b Add emulation methods for "RSC (immediate)" and "RSC (register)" operations.
ed32e7c Add emulation methods for "RSB (immediate)" and "RSB (register)". Plus add missing break stmts for "case" blocks.
ad626a7 Don't enable thread safe logging as it currently deadlocks logging.
212baf4 Make logs threadsafe (add the -t option) when logging API stuff.
cf57434 Fixed a hang in the expression parser's result synthesizer that occurs when the function generated for the expression is completely empty except for a NULL_STMT. This happens sometimes when the parser returns errors.
3dd0605 Add two convenience functions: DecodeImmShiftThumb() and DecodeImmShiftARM() to ARMUtils.h. Use them within EmulateInstructionARM.cpp to save repetitive typing.
078fbc6 Add "cmp<c>.w <Rn>, #<const>" emulation to EmulateCMPImm() method, and implement EmulateCMNImm() and EMulateCMNReg() methods.
85be6c9 Remove an assertion that was causing a crash.
688926f Fix the 'variants' field of "CMN (immediate)" Encoding T1 entry, it should be ARMV6T2_ABOVE, not ARMvAll.
3847dad Add ARM encoding entries for "CMN (immediate)" and "CMN (register)" operations.
34075cb Add ARM encoding entries for "CMP (immediate)" and "CMP (register)" operations. Add ARM/Thumb encoding entries for "CMN (immediate)" and "CMN (register)" operations, with the EmulateCMNImm()/Reg() methods not implemented yet for now.
d642a6a Add emulation methods for "MVN (immediate)" and "MVN (register)".
2115b41 Add emulation methods for "EOR (Immediate)", "EOR (register)", "TEQ (immediate)", and "TEQ (register)" operations.
de3cce3 Add emulation methods for "TST (immediate)" and "TST (register)". Plus modified EmulateANDImm/Reg to delegate to TSTImm/Reg for Thumb2 32-bit instructions when Rd == '1111' and setflags is true.
aa378b1 Don't limit StreamTee to just two streams. It now can contain N streams by making the stream a vector of stream shared pointers that is protected by a mutex. Streams can be get/set by index which allows indexes to be defined as stream indentifiers. If a stream is set at index 3 and there are now streams in the collection, then empty stream objects are inserted to ensure that stream at index 3 has a valid stream. There is also an append method that allows a stream to be pushed onto the stack. This will allow our streams to be very flexible in where the output goes.
2e8cb8a - Changed all the places where CommandObjectReturn was exporting a StreamString to just exporting a Stream, and then added GetOutputData & GetErrorData to get the accumulated data. - Added a StreamTee that will tee output to two provided lldb::StreamSP's. - Made the CommandObjectReturn use this so you can Tee the results immediately to the debuggers output file, as well as saving up the results to return when the command is done executing. - HandleCommands now uses this so that if you have a set of commands that continue the target you will see the commands come out as they are processed. - The Driver now uses this to output the command results as you go, which makes the interface more reactive seeming.
e39f22d Make the helper method ReadCoreReg(uint32_t reg, bool *success) more generic which now handles R0-R12, SP, LR, as well as PC. And refactored a lot of calls to ReadRegisterUnsigned() to now funnel through ReadCoreReg(), instead.
30fec12 Add code to emulate LDRB (register) Arm instruction.
7c5234d Add emulation methods for "ORR (immediate)" and "ORR (register)". Add Encoding T3 of "MOV (register)" to EmulateMOVRdRm() method and fixed some bugs in EmulateMOVRdImm() and EmulateMOVRdRm() methods.
f55261f Add code to emulate LDRB (literal) Arm instruction.
157b959 Add emulation methods for "ADC (immediate)" and "ADC (register)". Plus add a helper method ReadCoreReg(uint32_t regnum, bool *success) to simplify coding a bit.
21b604b Add code to emulate LDRB (immediate, Thumb) instruction.
e97c0d5 Add emulation methods for "AND (immediate)" and "AND (register)". Plus add macro definitions for APSR_C and APSR_V to simplify code.
fe47911 Add code to emulate LDR (register) Arm instruction.
d284b66 Added new target instance settings for execution settings:
e92b27c Fix typo.
8fa2059 Add emulation of Encoding A1 "A8.6.6 ADD (register)" and "A8.6.5 ADD (immediate, ARM)".
4d729c5 Add code to emulate LDR (immediate,ARM) instruction.
949d5ac Factor all the code that does "Execute a list of lldb command interpreter commands" into a single function in the Interpreter, and then use that in all the places that used to do this by hand.
864a8e8 Finished renamings to make the emulation method names consistent case-wise.
9f68772 Some renamings to make the emulation method names consistent case-wise.
4e19e62 Removed redundant entry EmulateTBB() (there's an existing one EmulateTB()) and fixed some typos in section headings.
104c8b6 Fix a bug in EmulateTB() (TBB, TBH) where the branch length should be "twice" the value of the byte/halfword returned from the table.
e311f44d0 Add header declarations for the remaining instructions we need to emulate, to cover those that can change the PC.
10530c2 Refactoring. Abstracted the set flags operation into its own helper method WriteFlags() and renamed WriteCoreRegisterWithFlags() to WriteCoreRegOptionalFlags(). Modified the call sites to use the helper methods.
d761dcf A8.6.6 ADD (register)
60299ec Add EmulateTB() method to emulate "Table Branch Byte" and "Table Branch Halfword" operations for Thumb2.
cc96eb5 Add stubs for pseudocode functions "MemA[]" amd "MemU[]", corresponding to aligned and unaligned memory accesses. The new stub functions are MemARead, MemAWrite, MemURead, and MemUWrite. At the moment these stubs just call ReadMemoryUnsigned or WriteMemoryUnsigned, but we can fill them out further later if we decide we need more accurate emulation of the memory system.
7c677ac Move Align(val, alignment) utility function to ARMUtils.h.
4fefe32 Modified version of Marco Minutoli's host arch patch.
761d607 Add comment for the helper method WriteCoreRegisterWithFlags().
ca67d1c Refactoring. Wrap the following pseudocode from the ARM Architecture Reference Manul:
7095fa3 Do not use constants from stdint.h that we cannot portably provide on all platforms.
04c9c7b Clean up a bit of the type getting code where lldb_private:Type now has
eeab485 Add emulation methods for ROR (immediate), ROR (register), and RRX. Turns out that they can be funneled through the helper methods EmulateShiftImm()/ EmulateShiftReg() as well.
73a29de Add code to emulate STRB (Thumb) instruction.
2ee35bc Add encoding entries for LSL (immediate and register) and LSR (immediate and register) to ARM and Thumb opcode tables.
1443644 Fix clang++ warning building the executable for testing.
225589e Add tagging for EmulateLDRRtRnImm().
88fa7bd Destroy the dynamic loader plugin in Process::Finalize. If you wait till the auto_ptr gets deleted in the normal course of things the real process class will have been destroyed already, and it's hard to shut down the dynamic loader without accessing some process pure virtual method.
e7b3bbb Make declaration of DynamicLoaderLinuxDYLD::CreateInstance match its definition.
e7fa4a9 Expose includes for the socket layer on all platforms.
cd298d8 linux: Set ArchSpec m_type correctly from object file.
b1a22be Use SIZE_MAX instead of SIZE_T_MAX for portability.
75c703d The DynamicLoader plug-in instance now lives up in lldb_private::Process where it should live and the lldb_private::Process takes care of managing the auto pointer to the dynamic loader instance.
56886d2 Minor comment change.
41a0a15 Add emulation methods for LSL (immediate), LSL (register), LSR (immediate), and LSR (register). Create two helper methods EmulateShiftImm() and EmulateShiftReg() and have ASR, LSL, and LSR delegate to the helper methods which take an extra ARM_ShifterType parameter.
3fd63e9 Add documentation tags for LDM/STM instruction families.
68cacf7 Section heading for EmulateB().
a480df9 Add section headings corresponding to some of the ARM/Thumb emulation methods for better documentation.
5e4f4a2 Fixed an issue where detection of vCont support wasn't being done correctly.
e7f8953 A8.6.14 ASR (register)
7fac857 Add eContextRegisterLoad instruction emulation context.
0fa98ca Modify the various shift routines to handle cases where the shift amount comes from the bottom byte of a register.
6963bf5 Removed my specific binaires from the xcscheme.
395fc33 Made lldb_private::ArchSpec contain much more than just an architecture. It now, in addition to cpu type/subtype and architecture flavor, contains: - byte order (big endian, little endian) - address size in bytes - llvm::Triple for true target triple support and for more powerful plug-in selection.
668b451 Remove the "Register &reg" parameter from the BXWritePC(), LoadWritePC(), and ALUWritePC() methods of EmulateInstructionARM class. The context data structure should provide sufficient information already.
4d896db Fix wrong mask and encoding for T2 of ASR (immediate).
82f16aa A8.6.14 ASR (immediate)
6a564a4 Refactored the test driver to abstract out the Python sys.path specification for different build configurations.
af55656 Add code to emulate STMIB Arm instruction.
b6f8d7e Add code to emulate STMDB Arm instruction.
0d771a2 Add a bunch of utilities and an enum (ARM_ShifterType) for shift and rotate operations pertaining to:
2fd5034 Remove the unnecessary assignment of m_inst_cpsr inside EvaluateInstruction(), because it's already been done within ReadInstruction().
1511f50 Add code to emulate the STMDA Arm instruction.
c3c4661 All UnwindPlan objects are now passed around as shared pointers.
9798cfc Add missing logic (if BadReg(d) then UNPREDICTABLE;) for Encoding T2 of EmulateMovRdImm().
e524a35 Fix build warning (unused variable).
9bfe7f2 - Rearrange instruction emulation contexts to use a union for the various types and numbers of arguments rather than trying to keep a constant number of arguments for all the types.
adbe939 Updated README file.
357c30f Add entries for EmulateMovRdImm() -- "MOV (immediate)" -- Encodings T1 & T2 into g_thumb_opcodes table. Modify EmulateInstructionARM::EvaluateInstruction() so that if the cpsr has changed during evaluate instruction, we flush out the change into m_inst_cpsr in preparation for the next instruction.
d9846b0 Added support for Xcode 4 build directories.
33bf6ab Add impl for EmulateMvnRdImm() -- "MVN (immediate)". Plus zero out the arg0 field of the context of eContextImmediate type, since the immediate value is known from the argument value to WriteRegisterUnsigned() callback already.
3e9a41c Add comment.
07f2f5a Enhanced the existing ARMExpandImm() and ThumbExpandImm() functions which expand an imm12 into imm32 for ARM or Thumb so that they now handle carry_in/carry_out. Funnel ARMExpandImm()/ThumbExpandImm() to the enhanced ARMExpandImm_C()/ThumbExpandImm_C() functions.
c1f4587 Added the ability to detect which vCont packets (using the "vCont?") packet are supported by the remote GDB target. We can also now deal with the lack of vCont support and send packets that the remote GDB stub can use. We also error out of the continue if LLDB tries to do something too complex when vCont isn't supported.
28070c3 Add entries for Encodings T1 and A1 of "MVN (immediate)" to g_arm_opcodes and g_thumb_opcodes tables. The corresponding EmulateMvnRdImm() method impl is empty for now.
7da805c Changed comments of some functions to be consistent with existing ones.
098ae2d Add helper methods InITBlock() and LastInITBlock() to EmulateInstructionARM class instead of calling out to m_it_session.InITBlock()/LastInITBlock(), which simplifies the coding a bit.
ab3b351 Add EmulateBXRm() ("Branch and Exchange") to both g_arm_opcodes and g_thumb_opcodes table.
f558860 Add a couple of utility functions plus some comments.
fa17220 - Add three more instruction contexts to EmulateInstruction: eContextAdjustBaseRegister, eContextRegisterStore and eContextWriteMemoryRandomBits.
e4a4d30 Add EmulateCmpRnRm() for Encodings T1 & T2 to the g_thumb_opcodes table to emulate CMP (register) operations.
383d629 Rearraned some emulate instruction entries under the appropriate category.
30ef3ce Instead of self.runCmd(), do a stronger self.expect("process status") which also checks that the process is stopped due to breakpoint at the specified line no.
44c10f0 Handle the case of interworking branch for EmulateLDMDA.
c9de910 Add Thumb2 LDR (literal) instruction into the g_thumb_opcodes table. Change the method name from *LDRRdPCRelative to *LDRRtPCRelative to be compliant with the ARM Arch Manual which uses Rt for the destination register.
62ff6f5 Fix build.
713c266 Add new instruction context, eContextWriteRegisterRandomBits.
d4dc444 Add an entry for CMP (immediate) (Encoding T1) to the g_thumb_opcodes table.
bf6ad17 Add a helper method AddWithCarry() to the EmulateInstructionARM class.
b4ed280 Fix another typo.
a1a6157 Fix a typo.
7872f75 Add TestConstStrings.py under foundation dir for testing expression parser on objective-c strings and constant strings.
0ece526 Fixes for two bugs:
c3a38ea Cleaned up some parameter types and names.
bd59990 Namings are important. Renamed Bits32(const uint32_t val, uint32_t bit) to Bit32(val, bit) and SetBits32(uint32_t &bits, uint32_t bit, uint32_t val) to SetBit32(bits, bit, val).
1928020 Some refactorings to use the convenience function: Bits32(const uint32_t value, const uint32_t bit).
0e00af2 Add some comment markers.
338bf54 Add a generic EmulateMovRdRm() method and modify/add entries to the g_thumb_opcodes table. Also add some more defines and convenience functions.
e7cf420 Rearrange the order of g_thumb_opcodes entries.
a118f0c Fixed a crasher when enabling logging that is due to the new hijack listener stack changes.
ef21b59 Add EmulateLDRRtRnImm() for EncodingT1 of LDR (immediate, Thumb) to the g_thumb_opcodes table, and a helper method UnalignedSupport().
7f99fc8 Add a new function to Debugger for finding the top/current input reader.
558133b Add a new member variable m_new_inst_cpsr to catch the to-be-updated state of the CPSR during the course of executing an opcode, and modified SelectInstrSet() to update this variable instead of the original m_inst_cpsr, which should be the cached copy of the CPSR at the beginning of executing the opcode.
26863dc Add EmulateAddRdnRm() for EncodingT2 of ADD(register) to the g_thumb_opcodes table, and a helper method ALUWritePC(Context&, uint32_t).
7bb069b Modified version of a patch from Warren Paul that takes care of issues with indirect forms, deals with empty DW_AT_comp_dir attributes, and fixups for handling other signed integer types.
e62b50d Modified existing Emulate* methods to call LoadWritePC(context, data) where appropriate to effect an interworking branch if the ArchVersion() is ARMv5T and above.
80949d4 Missed part of a patch from Stephen Wilson.
b5dcb46 linux: use IS_VALID_LLDB_HOST_THREAD.
f3eaacf Modified EmulatePop impl to use the helper method LoadWritePC(context, data) since if PC is in the list of registers to be load and we're in ARMv5T and above, this is an interworking branch.
0f309db If the CPSR is changed due to switching between ARM and Thumb ISETSTATE, we want to record it and issue a WriteRegister callback so the clients can track the mode changes accordingly.
a8d4241 Added the DWARF unique type map such that we only create a type once in the module's AST context. Prior to this fix, with gcc binaries, we end up with a full class definition for any used classes in each compile unit due to the one definition rule. This would result in us making N copies of class T, where N is the number of compile units that use class T, in the module AST. When an expression would then try and use any types that were duplicated, it would quickly confuse clang and make expression evaluation fail due to all of the duplicate types that got copied over. This is now fixed by making a map of types in the DWARF that maps type names to a collection of types + declaration (file + line number) + DIE. Then later when we find a type we look in this module map and find any already cached types that we can just use.
f29a08f Patch from Kirk Beitz to make things compile on MinGW minus the putenv part.
419144b File::GetFileSpec() support for linux patch from Stephen Wilson.
c62176d Fix comment text.
fc7920f <rdar://problem/8972204> Test failure: ./dotest.py -v -t -f UniversalTestCase.test_process_launch_for_universal
c08c4d3 Pull support for the shared and exclusive lock since this wasn't available on linux. And conditionalize the availablility of the fcntl() command F_GETPATH.
5892856 Use Host::File in lldb_private::StreamFile and other places to cleanup host layer a bit more.
ee9b1f7 Add some helper methods to the EmulateInstructionARM class as a first step in the refactorings of EmulateInstructionARM.cpp file, which will be modified later to take advantage of these helper methods.
85aab33 Add code to emulate the LDMIB Arm instruction.
7c1bf92 Fix typos.
158842c Add FileSpec::ResolvePartialUsername, and use it in CommandCompletions to isolate pwd.h in the Host layer.
53ebab7 Add EmulateCB() entry to the g_thumb_opcodes table to represent "Compare and Branch on NonZero and Compare and Branch on Zero" operations.
0b29e24 Add code to emulate LDMDB Arm instruction.
b9f76c3 Add code to emulate the LDM ARM instruction.
d6c13f0 Add missing implementation for "BL, BLX (immediate)" Encoding T1 and an entry for "bl <label>" into g_thumb_opcodes table.
d35305a Updated a few more Host::File functions and added documentation.
882ef05 Added a few more calls to the File abtract class for seeking, syncing and getting the file spec from the file descriptor.
c47d0ca Add missing implementation for "BL, BLX (immediate)" Encoding A1.
c113489 Add new radar info for failed test.
f20b8d9 Make the assertion message about 32-bit process address byte size more clear.
60a63ae Added a file abtraction layer into the Host section of LLDB.
bf467b0 A patch from Stephen Wilson that fixes some issues with my previous dynamic loader changes.
f9f40c2 Rework the RunThreadPlan event handling to use Event Hijacking not stopping the event thread. Also clarify the logic of the function.
82cfaed A bit more cleanup with respect to using LLDB_CONFIG_XXX defines outside of the lldb/source/Host/*.cpp and lldb/source/Host/*/*.cpp directories. The only offenders are the command completion and the StreamFile.cpp.
ff276fe Add _pthread_wqthread to the list of thread stop points, and change the logging a bit.
b0cb717 Change the Hijacking interposer to a stack of interposers.
e9170d2 Add a GetName interface to the Listener for logging purposes.
5f54ac3 Moved FileSpec into the Host layer since it will vary from host to host. We have a common unix implementation in lldb/source/Host/common/FileSpec.cpp.
8af1bb7 Formatting.
9dd30d0 Forgot to check in this file with r125059.
3c12604 Fixed a crasher that could happen when trying to look at N_GSYM entries in the DWARF + debug map symbol file parser.
09c81ef Patch that allows for thread_t to be something more complex than an integer. Modified patch from Kirk Beitz.
14ef59f Cleaned up the dynamic library open/getsymbol/close code to use abstracted flags such that symbols can be searched for within a shared library if desired. Platforms that support the RTLD_FIRST flag can still take advantage of their quicker lookups, and other platforms can still get the same fucntionality with a little extra work.
9ee056b Add implementation for EmulateInstructionARM::EmulateB() and fixed two typos in g_thumb_opcodes as pointed out By Caroline. Refactored a little bit by adding two new helper methods to the EmulateInstructionARM class:
0fdd4a0 Abtract terminal stuff into a new lldb_private::Terminal class where the implementation is hidden in the host layer. This avoids a slew of "#if LLDB_CONFIG_TERMIOS_SUPPORTED" statements in the code and keeps things cleaner.
3b620b3 Add EmulateInstructionARM::EmulateB entries to the g_arm_opcodes and g_thumb_opcodes tables. EmulateB() has empty impl. and needs to be filled in later.
a39fa4b Include Config.h so we can get "~" resolved.
9a7a947 More termios fixes. We need to currently make sure to include:
9920858 More termios fixes from Kirk Beitz.
8120d47 Namespace patch for linux builds from Jai Menon.
0f577c2 Added a "ArchSpec::SetElfArch()" that was removed by a previous patch and avoid using RTLD_FIRST with dlopen to keep things compatible with other *NIX variants. Patch from Jai Menon.
90df563 Posix compatability patch from Jai Menon to avoid uses dirent struct members that aren't always available (sometimes d_namlen or d_reclen). Now strlen is used to avoid such issues.
8dd8c54 Fixup on setlinebuf() patch to make it work.
b8fa568 Configuration support for setlinebuf support from Kirk Beitz.
b5f67fb Apple specific fix for Host.cpp from Kirk Beitz.
8d110ff Apple specific change from Kirk Beitz.
151c0ea A tool for examining a mach process and its threads.
17f5afe Header patch, virtual dtor patch and missed UUID patch from Kirk Beitz.
1a2f311 Python override patch from Jai Menon.
2c344ca Fixed an excessive ctor issue. Patch from Kirk Beitz / Jai Menon.
8da92a7 Added support for targets that don't support expanding "~/" or "~USERNAME". Patch from Kirk Beitz.
0bfda0b Added a quicker lookup in the SectionLoadList when looking things up by section by using a DenseMap.
8f128eb Handle the thumb branch instructions which have their cond bits embedded in the instruction stream.
c315f86 Add EmulateInstructionARM::EmulateIT() to the g_thumb_opcodes table, to represent the the 'If Then' instruction which makes up to four following instructions (the IT block)conditional.
19a1ab8 Fixed the BreakpointLocationList to be able to do O(1) lookups on breakpoint locations by ID. It used to be, worst case, O(N).
9307047 Add a utility class ITSession to maintain the ITState for the Thumb ISA.
41950cc Change "breakpoint list" command to default to brief output rather than full output.
4302f85 Add some comments and a little utility to convert ARM conditions to strings.
ddff7cc Remove bzero use and replace with memset (patch from Kirk Beitz).
5e41dd3 Added the start of platform configuration designed for internal LLDB use. Internal use means for compiling the LLDB debug engine and plug-ins, but it should never make it into the public API.
d5f76bb Patch to remove uses of non-standard strcasestr and replace then with strncasecmp equivalents from Kirk Beitz.
0467c78 Applied a fix to qualify "UUID" with the lldb_private namespace to fix build issues on MinGW.
151185a MinGW patch from Kirk Beitz.
a14755a Patches from Jean-Daniel:
e71e258 Added support for attaching to a remote debug server with the new command: (lldb) process connect <remote-url>
02fc32c Add test_apropos_should_also_search_settings_description() to make sure that:
b77be41 Add EmulateInstructionARM::EmulateSVC() to the g_arm_opcodes and g_thumb_opcodes tables, to represent the supervisor call instruction (previosuly software interrupt).
a04acd8 Modify 'apropos' command to search settings variable descriptions as well.
4b1850a Modify test scripts to accomodate SBTarget.Launch() API change.
271a5db Added a SBListener parameter to Launch and attach calls to avoid a race condition that could occur when launching or attaching. What could happen is you would launch/attach to a process, then you would need to tell a listener to watch for process state changed events. In this case, if you waited too long to listen for events, you could miss the initial stop event, requiring clients to listen, then check the process state.
a81c367 Fix exit instructions for interactive interpreter, now that ctrl-D works.
242db72 Fix the ctr-D and end-of-file stuff.
7acdcec Add teardown hook to clear image-search-paths after the test.
455aae9 Removed unneeded header file.
9f52704 Removed a memory map loading of a file where the mmap contents were just being read directly into a string. The use of memory mapping here was useless.
1c2aa46 Fixed the SendInterrupt logic to return the true if the target was halted (regardless if the interrupt was sent), and false of not.
c4bd46b Parametrize make variable CC to also test with clang.
b294104 Parametrize make variable CC to also test with clang.
4d66135 Add a test case test_image_search_paths() to test lldb's ability to do image search paths substitutions in order to achieve file mappings.
057f706 Fix breakpoint id test to work with clang as well as gcc; added a few more test cases
52fd984 Modified the PluginManager to be ready for loading plug-ins from a system LLDB plugin directory and a user LLDB plugin directory. We currently still need to work out at what layer the plug-ins will be, but at least we are prepared for plug-ins. Plug-ins will attempt to be loaded from the "/Developer/Library/PrivateFrameworks/LLDB.framework/Resources/Plugins" folder, and from the "~/Library/Application Support/LLDB/Plugins" folder on MacOSX. Each plugin will be scanned for:
22a6009 Make sure the confirmation input reader calls fflush after writing its output. (<rdar://problem/8946573>)
9b8d783 Add EmulateBLXImmediate() and EmulateBLXRm() to the g_arm_opcodes and g_thumb_opcodes tables, which represent "bl <label>", "blx <label>", and "blx <Rm>" instructions.
270ac39 Fix test function breakpoint_command_script_parameters()'s expect-pattern so that it passes when using clang as the compiler to build the inferior.
5aad3f5 Added missing return statement (patch from Kirk Beitz).
6e74dbb Added a new class, ASTDumper, that provides verbose diagnostics of Clang AST classes for the purpose of debugging the types LLDB produces for DWARF objects.
c28a76d Remove the 'lldb_private::' namespace resolution operator.
587a0a4 Add EmulateVPOP() to the g_arm_opcodes and g_thumb_opcodes tables, which represents an operation to load multiple extension registers from the stack.
1febb89 A missed endian fix for the linux register context for x86_64.
7480061 Added a cleanup helper object to make sure the directory that was opened with "DIR *opendir(const char *)" is closed if it is valid with a call to "int closedir (DIR *)".
ad40027 Added a cleanup helper object to make sure the directory that was opened with "DIR *opendir(const char *)" is closed if it is valid with a call to "int closedir (DIR *)".
b077058 Added EmulateIntruction plug-in manager support.
cd54803 Endian patch from Kirk Beitz that allows better cross platform building.
df8e048 Add TestVirtual.py to go with test/cpp/virtual/main.cpp file, which tests C++ virtual function and virtual inheritance.
81040f4 Patch from Kirk Beitz that removes an unneeded include of "sys/errno.h".
2b8e8b0 Cleaned up the EmulateInstructionARM to have the evaluate instruction callbacks use member functions.
8482ded Made the EmulateInstruction class into a plug-in interface and moved the source files around into the places they need to go.
98053bc Added a virtual C++ test case that catches some interesting cases that you run into with inheritance.
ef85e91 Add emulate_pop (loads multiple registers from the stack) entries to both the g_arm_opcodes and g_thumb_opcodes tables.
2c162cf Test warning for pending breakpoints.
49d5d12 Add test for breakpoint id ranges.
fdd179e Add emulate_add_sp_imm entry to the g_thumb_opcodes table, which represents an operation to adjust the stack pointer by adding an imm7-scaled value to the SP.
6db9e88 Align comment.
2e89e63 Add test for help on aliased commands.
52dae3d Add a few more settings tests.
08c25e8 Add some comments to the emulate_* functions.
5e675ec Minor comment fix.
31e2a38 Added the start of the plug-in interface to EmulateInstruction and implemented it for the EmulateInstructionARM class.
5bc2096 Added some documentation that describes the purpose and the goals of the EmulateInstruction class.
17801bc Bumped Xcode project versions to lldb-46 and debugserver-131.
7e2f91c Finished up the async attach support. This allows us to request to attach by name or by pid (with or without waiting for a process to launch) and catch the response asynchronously.
68bffc5 The m_next_action is simpler if it is an auto_pointer.
84c8638 Handle the case where the "NextEventAction" wants to kill us on some event other than eStateExited.
c2dc7c8 Added a completion action class to the Process events so that we can make things like Attach and later Launch start their job, and then return to the event loop while waiting for the work to be done.
d536233 Added comment.
50bc638 Add a "-D" option to the test driver which dumps the Python sys.path variable to be used for the test run. Could be useful for debugging the setup of the test environment.
989bc04 Use different log files for the two test cases in order not to confuse the logging subsystem.
6662f7c Add a test case to verify that the frame and breakpoint location are being properly passed down to script breakpoint commands.
c8448dc Add a test case to check logging of command processing. Currently this test case works fine run by itself, but fails when run in the entire test suite; Johnny requested that I check it in so that he can look at it.
1c13b62 Add emulate_mov_low_high() entry to the g_thumb_opcodes table to capture moving of high registers to low registers in the prologue so they can be saved.
3f5e90a Add "import sys" for sys.stdout.
2ccad83 Add emulate_mov_rd_sp() entries to the g_arm_opcodes and g_thumb_opcodes tables. For prolog instructions which set r7 or ip to the stack pointer.
1ae2c36 The restoring of sys.stdout should happen right after:
30e4093 Hardened the test_command_source() test case by actually capturing the output from running the "script my.date()" lldb command and comparing it against our expected result.
b48dfa3 Add comment.
47d3df1 Remove comments I accidentally left in before.
ebf1ece Add tests for 'process launch' I/O flags.
df0d76b Minor comment change.
0d0148e Add emulate_sub_r7_ip_imm() (set frame pointer to some ip offset) and emulate_sub_ip_sp_imm() ( set ip to some stack offset) entries to the g_arm_opcodes table.
9082c8a Fix a little thinko in sending down the thread name to SetName.
679c77b The thread_info changes over the life of the thread, so you can't get it once and cache it, you have to fetch it every time you want to use it.
809742e Should provide more useful context info for the emulate_ldr_rd_pc_rel() impl. The context being that it's a PC relative load.
e4450f0 If the user specfies one of stdin, stdout or stderr, don't automatically set the non-specified ones to /dev/null.
788e055 Add emulate_ldr_rd_pc_rel entry to the g_thumb_opcodes table, which represents a PC relative immediate load into register, possibly followed by an add operation to adjust the SP.
b2b604f Adding a Xcode workspace for lldb.
8d8ad88 Removed the "lldb" folder reference from the Xcode project.
5b442b7 Add emulate_add_sp_rm entry to the g_thumb_opcodes table, which represents an operation to adjust the stack pointer by adding a register value in Rm to the SP.
abea3cb Updated Xcode project versions: lldb-45 and debugserver-130
9353338 Improved support for GCC complex integers.
db2bab4 Finally tracked down the racy condition that would hose up our debug sessions: When continue packet has been sent and an interrupt packet was quickly sent, it would get read at the same time:
28d5fcc Changed the SymbolFile::FindFunction() function calls to only return lldb_private::Function objects. Previously the SymbolFileSymtab subclass would return lldb_private::Symbol objects when it was asked to find functions.
d5b3c35 Updated Clang to a version that supports propagating the "virtual" flag when importing a C++ function declaration. Made changes to LLDB to support other changes in Clang.
c6d591b Some cleanup to plugins/darwin.py after the recent additions of '-A arch' and '-C compiler' command line options to the test driver. Replace TestBase.getRunSpec() with TestBase.getRunOptions().
bcec3af Add emulate_add_rd_sp_imm (SP plus immediate) to the g_arm_opcodes and g_thumb_opcodes tables. Change the data type of Context.arg2 to int64_t due to possible negative values.
97c924e Added error reporting to IRForTarget so that the user doesn't have to enable logging to see where something went wrong.
7c330d6 Added support for some new environment variables within LLDB to enable some extra launch options:
644ddfb Fixed a crasher when there is no log in Process::SetExitStatus (...).
799dfd0 Add emulate_vpush (stores multiple consecutive extension registers to the stack) entries to both the g_arm_opcodes and g_thumb_opcodes tables.
78108e6 Make sure that if a CallFunction thread plan crashes while running in the "run to address" mode, and it is an auto-discard thread plan, the plan stack unwinds properly.
33ee892 Typo in looking up the stored address breakpoints, could cause us to look too far for breakpoints.
0984687 Initialize an uninitialized variable. I don't think this is ever used, but just to be sure...
012cba1 Add "-A arch_spec" and "-C compiler_spec" options to the test driver. Example:
a8e31c0 Remove duplicated comments.
8584c92 Move #define's out of ARMUtils.h and into a newly created file ARMDefines.h.
108d5aa Move the generic instruction bits manipulation routines into a newly created file named InstructionUtils.h and modify some existing code to use them.
e445502 Add Encoding T1 entry of emulate_sub_sp_imm to the g_thumb_opcodes table. Update emulate_sub_sp_imm to handle Encoding T1.
8fe7126 Removed unused directory.
bdcb6ab Enabled extra warnings and fixed a bunch of small issues.
60c0d62 Add Encoding T2 & T3 entries of emulate_sub_sp_imm to the g_thumb_opcodes table. Update emulate_sub_sp_imm to handle Encoding T2 & T3.
b6b6fae Simple makefile fixups.
4c0e0bc Add an entry to the g_arm_opcodes table named emulate_sub_sp_imm which corresponds to an operation to adjust the stack pointer (allocate space for local storage).
867294d http://llvm.org/bugs/show_bug.cgi?id=8260
27345db http://llvm.org/bugs/show_bug.cgi?id=9053
91d9986 Variable renaming for better readability.
4b179b6 Remove the expectedFailure decorator for the fixed bug:
95a581c Fix wrong order of "import lldbutil" statement and its usage in the failure case.
46cd50c Trivial comment fix.
9d71c95 Bumped Xcode project versions to lldb-44 and debugserver-129.
cc3e640 Reverting recent thread resume changes as it was causing testing issues. We will need to try again soon, but this change was causing instability.
78bce00 Fixed an issue that was stopping LLDB from finding complete definitions for types. What was happening was the DWARF parser was almost ignoring definitions (DIEs with the DW_AT_declaration set to 1). It wasn't ignoring declarations that had _some_ children. When this happened, we would treat the declaration as a complete type. Often we would have a declaration of a type with just some enum definitions inside and nothing else. Now we correctly ignore these definitions, and also I added some changes to allow us to figure out what decl context these special declarations actually point to.
c72af6b When we are stepping a thread, force it to resume ALL the way to 0. And of course, when we stop if we undid some user provided suspends, we need to re-do the suspends.
27a8dd7 One more fix to ProcessGDBRemote::DoDestroy(). This one will make sure we parse the exit status in case we send this packet while stopped.
db599d3 Revert one unintended change checked in to DWARFCallFrameInfo.cpp with my last commit.
d03b25a Use new Section::IsEncrypted() method to check if the eh_frame section is encrypted before trying to read it. Fixes assert / crash when trying to unwind an executable w/ encrypted eh_frame sect.
68ca823 Fixed ProcessGDBRemote to kill the process correctly when it is either running or stopped.
11a837d Check for a NULL saved stop info shared pointer.
ce1ca77 Add an emulate-callback function emulate_str_rt_sp() to the g_arm_opcodes table.
347320d Use two opcode tables g_arm_opcodes and g_thumb_opcodes, instead of lumping arm and thumb opcodes together.
22c9e0d Fixed a crasher due to not checking if a shared pointer (m_last_created_breakpoint) contained a valid object pointer.
7d193c1 Fix typo of encoding T2 (push) in the original ARM Architecture Reference Manual, which has been corrected in the subsequent errata.
a33d484 Add comment about using Encoding A1 push instruction to emulate the "stmfd sp!, reg" case, i.e., pushing one register onto the full descending stacks.
d6873ed Make the assembler mnemonic lowercase.
aedde1c Add Encoding T1 of the PUSH instructions to the g_arm_opcodes table.
555c497 Fix typo in the instruction descriptions for Encoding T2 and T3 of PUSH.
c3b5bc3 Move some #define's to the ARMUtils.h header file.
7dc60e1 Add Encoding T2 & T3 of the PUSH instructions to the g_arm_opcodes table. Plus add an extra field ARMInstrSize to the table entry type 'ARMOpcode'.
4baf2e3 Add an ARMUtils.h file to house utility functions for the ARM/Thumb Instruction Set Architecture.
14404f8 Fixed a bug in the expression code which caused it to interpret a "this" variable that was merely a pointer -- that is, not a class pointer -- as meaning that the current context was inside a C++ method. This bug would prevent expressions from evaluating correctly in regular C code if there was a pointer variable named "this" in scope.
42ddc49 Bumped Xcode project versions: lldb-43 and debugserver-128.
d330bfd One more thing... Resume any threads that we discover were created while we stop as they may be in sensitive areas and we set breakpoints on the thread creation routines if we are running expressions, so the threads should quickly get to a safe spot.
9ed3ebf Remember to turn off the debugserver.txt hard-coded emission.
ac95966 More useful STEP logging.
b349adc Make the logging come out all lined up and such.
2971e7f Discover new threads right before we continue a process since libdispatch has been known to make threads for us while our process/task is suspended.
9ace183 Added logging for threads that are spawned while we stop. We log their existence if the "thread" log bit is enabled right before we resume.
b00d655 Fix a crasher when you have no log.
0a27aeb Some useful logging. Also don't stuff the temporary thread into a shared pointer for no apparent reason.
d1eb73f Add a method to StreamFile to line buffer the file. Use that in "log enable -f file" to line buffer the log output.
43457c5 Linebuffer the log file.
d266227 A little less noise, please.
6ae318c Add some more logging of broadcaster and Process. Also, protect the event broadcasting against hijacking in mid-event delivery.
2860ba9 Improved process logging for both lldb_private::Process and ProcessGDBRemote.
5ec14f8 Deprecated old forms of SBTarget::Launch. There is not just one and no SWIG renaming done to work around deprecated APIs.
1fcdb82 Let's teach SWIG to rename the overloaded SBTarget::Launch() function which has provision for specifying a working directory with the name LaunchWithCWD in our target language (Python) for now. This fixes the test suite failures due to the overloading.
879bfee Restored some missing APIs for the test suite. Now testsuite still has some failures due to overloaded SBTarget::Launch() calls.
de915be Added a new variant of SBTarget::Launch() that deprectates the old one that takes separate file handles for stdin, stdout, and stder and also allows for the working directory to be specified.
a1aaaff Watch out for NULL types in NameSearchContext::AddTypeDecl or we crash.
500d8ca Fixed a crasher that would happen when we run into malformed DWARF. It is nice to know about the issue, but we shouldn't crash.
72e1c78 Fixed an issue in "SBError SBProcess::Destroy ()" where it wasn't properly checking the validity of the shared pointer prior to using it.
f4fbc0b Avoid the race condition Stephen Wilson was worried about in revision 123465 by making a local copy. We need to be able to have the private state thread let the lldb_private::Process class that it has exited, otherwise we end up with a timeout when the process destructor or DoDestroy is called where the private state thread has already exited and then StopPrivateStateThread() will wait for the thread which has already existed to respond to it.
a4881d0 Sped up the shutdown time on MacOSX by quite a bit by making sure any threads that we spawn let us know when they are going away and that we don't timeout waiting for a message from threads that have gone away. We also now don't expect the "k" packet (kill) to send a response. This greatly speeds up debugger shutdown performance. The test suite now runs quite a bit faster.
55e01d8 Added an interface for noticing new thread creation. At this point, I only turn it on when we are requesting a single thread to run. May seem like a silly thing to do, but the kernel on MacOS X will inject new threads into a program willy-nilly, and I would like to keep them from running if I can.
c556b46 Add more logging. Try to handle the case where "Halt" fails. This is kind of a losing game in the end, if we can't halt the target, it is not clear what we can do but keep trying...
cce607b Centralize the register reporting (might want to move this function to Thread).
2f6267f Centralize the register reporting (might want to move this function to Thread). Make sure DoTakedown gets called only once by adding a dedicated m_takedown_done bool. Add a little more useful logging.
bbce712 Move some of the more noisy "log enable lldb expression" output to the verbose output.
931851c Make "log enable -v" work. We were only checking the log's stream's verbosity, not the log's verbosity...
d5f41ca Add a (currently disabled) bear trap where instead of deallocating pages, we remove all permissions.
c4ed12f Add API and implementation for SBDebugger::Destroy and Debugger::Destroy.
4bee8ce Add more descriptions to the g_arm_opcodes table entries.
3c75c76 Pass along (ARMEncoding)encoding as the callback data, which allows us to abstract the EmulateCallback routine without too much duplication. Add an entry for emulating ARM PUSH with encoding A2.
a99282d Add missing {} so we don't print the Baton address for the brief breakpoint listing.
251af6a Untabify the file.
237e474 Added a safeguard to ensure that the user does not create variables that override persistent result variables.
9959b5c The code to check whether the number of arguments was 0 was not necessary, VerifyBreakpointIDs will turn an empty argument into the last specified breakpoint.
64c8443 Added the start of opcode emulation for ARM instructions. This class is designed to be fed 4 callbacks: read/write memory, and read/write registers. After this, you can tell the object to read an instruction. This will cause the class to read the PC, and read and instruction. Then you can emulate the instruction by calling EvaluateInstruction. This will cause the class to figure out exactly what an opcode does, and call the read/write mem/regs functions with actual values which allows one to emulate an instruction without running a process, or it allows one to watch the context information (the memory write is a pushing register 3 onto the stack at offset 12) so it can be used for generating call frame information. This way, in the future, we will have one class that can be used to emulate instructions and generate our unwind info from assembly.
d6228a9 Add test cases for the scenario of selecting a frame index while stopped, and then doing a thread step-out. This should lead us to the caller frame of the frame we just selected.
1ebdcc7 Added support for stepping out of a frame. If you have 10 stack frames, and you select frame #3, you can then do a step out and be able to go directly to the frame above frame #3!
00c3ae7 Fixed up the SBValue::GetExpressionPath() to be more correct under more circumstances.
c67efa4 Added the ability to StackFrame::GetValueForVariableExpressionPath(...) to avoid fragile ivars if requested. This was done by changing the previous second parameter to an options bitfield that can be populated by logical OR'ing the new StackFrame::ExpressionPathOption enum values together:
c4e7477 Remove the expectedFailure decorators. The bug:
cecf348 Fixed the async packets (packets that need to be sent to the GDB server while the inferior is running) to be fast. The previous code would always cause the sender to timeout, yet still return success due to the way we were waiting for a value (incorrect value) to change. Now the ProcessGDBRemote plug-in has a public and private "is running" predicate. This allows things that need to send async packets to interrupt and wait for the private "is running" state to be flipped to false, and then resume quickly with no timeout.
cd15169 Made the DWARF + debug map symbol file parser be much more efficient when it isn't going to actually be used as the symbol file plug-in by looking only for suitable N_OSO symbols and avoiding sorting function (N_FUN) and global/static (N_GSYM/N_STSYM) symbols when there are no suitable N_OSO objects.
7a183dc Fixed the auto completion of objective C types with the new ExternalASTSource changes that recently happened.
15dcb7c Back up both the register AND the stop state when calling functions. Set the thread state to "bland" before calling functions so they don't inherit the pending signals and die.
d0882d0 Make expressions clean up their JIT'ed code allocation.
27d098f Add the cmdline to invoke the Python profile reporting module.
067022b Print out the command line used to invoke the test suite so I don't get confused since different options can affect the run time.
c2d28bf Updated llvm.zip; the old one had debug symbols, making it way too big.
24af296 Fix a typo in the comment.
3e2ef48 ThreadPlanCallUserExpression's WillPop needs to call it's parent's WillPop.
61468e8 Took the timeout for a ClangUserExpression down from a 10 second timeout to 500 ms.
0de6ab5 Added special logic to faciliate profiling the test suite run with the cProfile.py module.
dcb3722 The test suite was unnecessarily doing a time.sleep() after performing the "process launch" or "run" interpreter command. Let's do the sleep only if the process launch failed. This saves about 135 seconds from the whole test suite run time.
4e1ba0f Delay sync with the parent thread in ProcessLinux/ProcessMonitor.
e0c20da Make LinuxThread use the LLDB unwinder.
f3cbdc2 Do not enable hardware stepping when resuming a step-enabled thread.
89d46e3 Fix implementation of LinuxThread::HardwareSingleStep.
f5db7cf Implement RegisterContextLinux_x86_64::ReadRegisterBytes.
bc5d8a2 Support the reading of registers en masse via the linux ProcessMonitor.
83047fc Timeout if we fail to receive a state change event when destroying an inferior.
07fc7a9 Only enqueue valid ProcessLinux messages.
460baba Load dependent modules in the Linux dynamic loader.
6465fa7 Decorated two new expected failures:
ad29309 Updated to revision 123723 of LLVM, to bring in support for minimal type import functionality.
7812e01 Make a few log messages come out in "log enable lldb step" as well as "log enable lldb expression".
443bd75 Remove trailing commas from lldb enumerations (patch from Stephen Wilson).
5c9e892 Use generic CPU types instead of hard coding to mach-o when getting default byte order (patch from Stephen Wilson).
590cce3 Fixed incorrect logging printf (patch from Stephen Wilson).
f41d4ca Fixed missing return value (patch from Stephen Wilson).
c71899e Thread safety changes in debugserver and also in the process GDB remote plugin. I added support for asking if the GDB remote server supports thread suffixes for packets that should be thread specific (register read/write packets) because the way the GDB remote protocol does it right now is to have a notion of a current thread for register and memory reads/writes (set via the "$Hg%x" packet) and a current thread for running ("$Hc%x"). Now we ask the remote GDB server if it supports adding the thread ID to the register packets and we enable that feature in LLDB if supported. This stops us from having to send a bunch of packets that update the current thread ID to some value which is prone to error, or extra packets.
6c9662e In ThreadPlanCallFunction, do the Takedown right when the thread plan gets popped. When the function call is discarded (e.g. when it crashes and discard_on_error is true) the plan gets discarded. You need to make sure that the stack gets restored right then, and not wait till you start again and the thread plan stack is cleared.
864bfdb Quick fixes to set access specifiers for Typedefs and Enums inside classes.
c7674af Added support for the fragile ivars provided by Apple's Objective-C 2.0 runtime. They are enabled if the Objective-C runtime has the proper version.
3bb8259 Add a method on the ObjC Language Runtime that returns the runtime version.
03ff435 Terminate the current process being debugged. The test framework was relying on detecting either "run" or "process launch" command to automatically kill the inferior.
202f6b8 Replace Mutex guarding python interpreter access with Predicate, allowing timeouts & informing the user when the lock is unavailable.
1724dec Avoid infinite loops in stack backtraces and renamed:
215ce00 Removed commented out code since it was incorrect code to begin with and we don't want anyone thinking they should put it back in.
e74b403 Fixed a bug which would trigger an assert() in LLDB; we were setting a forward-declared Objective-C class type as being completed using an ExternalSemaSource, but this is neither legal nor necessary.
be899b4 Another fix for the objective C runtime object checker to not use NULL when it isn't defined.
5c9721a Fixed the C string summary formatter to not get into an infinite loop for long strings in "char *" (with any combo if qualifiers).
d5d0ead Fix the objective C object validator that I broke. When we have ObjC runtime V2 and we only have gdb_class_getClass, then make sure the isa isn't NULL before trying to call gdb_class_getClass otherwise we end up deadlocking the objective C runtime.
d8b6502 Added missing source files.
b01000f A few of the issue I have been trying to track down and fix have been due to the way LLDB lazily gets complete definitions for types within the debug info. When we run across a class/struct/union definition in the DWARF, we will only parse the full definition if we need to. This works fine for top level types that are assigned directly to variables and arguments, but when we have a variable with a class, lets say "A" for this example, that has a member: "B *m_b". Initially we don't need to hunt down a definition for this class unless we are ever asked to do something with it ("expr m_b->getDecl()" for example). With my previous approach to lazy type completion, we would be able to take a "A *a" and get a complete type for it, but we wouldn't be able to then do an "a->m_b->getDecl()" unless we always expanded all types within a class prior to handing out the type. Expanding everything is very costly and it would be great if there were a better way.
92241ef Initial support for a DynamicLoader plugin on Linux.
b47794a Make a mandatory call to DestroyThread() in ~LinuxThread().
1364b3b lldb-41 and debugserver-126 are set in the Xcode projects.
e52f37b Added complete complex support for displaying and parsing complex types.
f51ed30 Enabled ObjC 2 abilities for expressions. We will enable the fragile ivar stuff soon when we get a fix for looking up the "OBJC_IVAR_$_Class.ivar" style symbols into IRForTarget::ResolveExternals() next week.
593b5e1 Add empty implementation of pure virtual RegisterContext::InvalidateAllRegisters.
1f004c6 Set the ID of a ProcessLinux instance to the PID of the inferior on launch.
25defec Miscellaneous cleanups in ProcessMonitor.
ec2bab4 Use the correct type for thread handle.
0131642 Implement ProcessLinux::GetImageInfoAddress().
9098739 Test if an ELF object is executable by checking if an entry point is defined.
f2ad325 Implement GetEntryPoint, GetImageInfoAddress and GetArchitecture for ObjectFileELF.
140f69a Have LinuxThread cache it's current StopInfo object.
91da749 Added the ability to wait for a predicate value, and set it to a new value all in a thread safe fashion.
0a185ac Converted to use Makefile.rules.
b3bd463 Add makefile debugging rule for printing out the value of a variable. From http://blog.melski.net/tag/debugging-makefiles/.
4a461da Recent modifications to the Python script interpreter caused some problems when handling one-liner commands that contain escaped characters. In order to deal with the new namespace/dictionary stuff, the command was being embedded within a second string, which messed up the escaping.
7ec8105 Extend the ObjectFile interface to support dynamic loading on ELF platforms.
772ab94 Do not prematurely invalidate thread handle.
9ff73ed Do not prefix log messages with ProcessMacOSX from the context of Process.
6c455d1 Added comments.
022d829 Make CC defaults to gcc. The cxx_compiler and cxx_linker functions rely on substituting "g++" for "gcc".
7577bc4 Removed printf statements in code.
1ec27e8 Add an expression command:
217dca5 The cxx_compiler function should not blindly return clang++ as the C++ compiler if $(CC) contains "clang". Instead, it should perform a textual replacement of $(CC) from "clang" to "clang++". The same is true for "llvm-gcc" to "llvm-g++" and for "gcc" to "g++". This way, we keep the path component of the $(CC) passed in from the user and do not end up with a mixed toolchains with different paths.
0d62dfd Fixed an error in the type map for "char **" that was a bad memory smasher. Anytime we had a valid python list that was trying to go from Python down into our C++ API, it was allocating too little memory and it ended up smashing whatever was next to the allocated memory.
0aa2e55 Split up the Python script interpreter code to allow multiple script interpreter objects to exist within the same process (one script interpreter object per debugger object). The python script interpreter objects are all using the same global Python script interpreter; they use separate dictionaries to keep their data separate, and mutex's to prevent any object attempting to use the global Python interpreter when another object is already using it.
97678d1 Fixed handling of explicitly-declared persistent variables.
6a92553 Implemented a major overhaul of the way variables are handled by LLDB. Instead of being materialized into the input structure passed to the expression, variables are left in place and pointers to them are materialzied into the structure. Variables not resident in memory (notably, registers) get temporary memory regions allocated for them.
366795e Plug Free BSD memory leak.
2b9f976 Call SetFile instead of constructing a temp object and assigning to g_program_filespec for Free BSD port.
20fbf8d Don't have the program path be resolved when they already are when assigning g_program_filespec in the Host calls.
421bc91 Do not pass an invalid thread to Thread{Cancel,Join}.
be1acb2 Initialize SymbolFileDWARFDebugMap on Apple platforms only.
f302a9e Null terminate path returned by readlink().
c2b9825 Log diagnostic when setting software breakpoints only on failure.
9063e1d Bumped Xcode project version to 40 for lldb-40.
123db40 Added the following functions to SBThread to allow threads to be suspended when a process is resumed:
7b19fc2 Bumped Xcode versions to lldb-39 and debugserver-125.
5fc81f3 Fix wrong test case in main.c. Oops!
c0c4fcb Change the default signal setting for SIBABRT to SUPPRESS the signal. Why? When debugging, if an expression hits a SIGABRT, it the expression ends up completing and stopping due the the "SIGABRT". Then the next thing that runs (another expression, or continuing the program) ends up progating the SIGABRT and causing the parent processes to die.
5a3c4e4 Removed a few bad assert() statement regarding bitfields.
a875b64 Put more smarts into the RegisterContext base class. Now the base class has a method:
1e2e271 Fixed the "-b" option on disassembly to always pad out the bytes with for i386 and for x86_64 to allow 15 byte opcodes to be displayed. This outputs clean looking disassembly when the bytes are shown.
9db023b Make sure we don't assert if we have a child with zero byte size. Also we now say that "void *" value objects don't have children.
5382281 Made FuncUnwinders threadsafe.
5d187e5 Spelling changes applied from lldb_spelling.diffs from Bruce Mitchener.
4862fa2 Modified the stop reply packet to be able to send the thread name using the new "hexname" key for the "key:value;" duple that is part of the packet. This allows for thread names to contain special characters such as $ # : ; + -
869efc2 Fixed an issue with the UnwindLLDB code where if there were inlined stack frames, UnwindLLDB could create the incorrect RegisterContext for a given stack frame because it was using the frame index (not the concrete frame index). This was causing crashes when doing backtraces through the SBFrame::GetFP() because a NULL register context was being returned for the deepest stack frame.
80ef64d Blacklisted testclass STLTestCase for a known crasher <rdar://problem/8837118>.
e2f9064 Fixed issues with the unwinding code where the collection of FuncUnwinders was being searched and sorted using a shared pointer as the value which means the pointer value was what was being searched for. This means that anytime you did a stack backtrace, the collection of FuncUnwinders doubled and then the array or shared pointer got sorted (by pointer value), so you had an ever increasing collection of shared pointer where a match was never found. This means we had a ton of duplicates in this table and would cause issues after one had been debugging for a long time.
da4b987 Added a recursive loop stress test for the unwinder. Not a real world test by any means, but something to stress test our unwinder with 260,000+ frames on a standard darwin thread.
43ca9c1 Modify disassemble_call_stack_python() to not rely on the "disassemble -n function_name" command to do the disassembly. Instead, use the Python API.
f2f64f2 Apply patch from Bruce Mitchener to fix spelling errors.
fd11999 Added memory caching to lldb_private::Process. All lldb_private::Process subclasses will automatically be able to take advantage of caching. The cache line size is set to 512 by default.
26100dc Added the ability for Target::ReadMemory to prefer to read from the file cache even when a valid process exists. Previously, Target::ReadMemory would read from the process if there was a valid one and then fallback to the object file cache.
108550d Print out a more meaningful exception message when/if CFBundleVersion matching failed.
bc1418b Fix a few small issues in r122981 to ensure compilation on Linux.
90ccf88 First try at patching linux for the recent RegisterContext patch. Can someone try and build this and let me know how it goes?
08d7d3a Fixed issues with RegisterContext classes and the subclasses. There was an issue with the way the UnwindLLDB was handing out RegisterContexts: it was making shared pointers to register contexts and then handing out just the pointers (which would get put into shared pointers in the thread and stack frame classes) and cause double free issues. MallocScribble helped to find these issues after I did some other cleanup. To help avoid any RegisterContext issue in the future, all code that deals with them now returns shared pointers to the register contexts so we don't end up with multiple deletions. Also now that the RegisterContext class doesn't require a stack frame, we patched a memory leak where a StackFrame object was being created and leaked.
64dd0d7 Makefile updates.
1bc21a8 Ignore unknown pragmas.
26fd389 Modify test_help_version() test case to be more precise in matching the version number string as found in the resources/LLDB-info.plist file.
c87fd49 Properly indent the short description of the test case to make it align with the previously added ordinal number of the currently running test case.
810042e Enhance the test framework to be able to emit a counter value in verbose mode describing the ordinal number of the currently running test case.
124b23a Bumped versions in Xcode projects: lldb is now at lldb-38, debugserver is now at debugserver-124.
e179a58 Added the ability to get an set the desired format for SBValue objects.
6c4f6b2 Fix typo (presumably carried over from the MacOSX plugin).
d61182d Provide LinuxThread with an implementation of Thread::GetUnwinder.
ed56002 Remove LinuxThread::GetRawStopReason and implement Thread::GetPrivateStopReason.
9702556 StopInfo now lives in the lldb_private namespace. Qualify.
c8c74e0 Use default implementation of Thread::GetStackFrameCount and Thread::GetStackFrameAtIndex.
a280e58 Do not load sections manually when launching a Linux process.
3a80431 Update ProcessLinux method signatures to be in line with LLDB's current API.
09e34d5 Host::StopMonitoringChildProcess has been removed. Provide a substitute.
4504bca Replace old "CurrentThread" calls with equivalent "SelectedThread" calls.
0e0817d Fixed a problem where constant results of expressions were not being created in the proper way, meaning results were getting lost.
8e1e126 Fixed the file ordering (alphabetic) in the Commands folder.
3ad0186 Fix typo of the test method name.
0633400 Updated comment.
f2a3b41 Uncomment the two failed 'expression' commands regarding fully qualified namespace variables. And decorate the test cases as @expectedFailure.
902e018 Add a simple command: 'version' to the command interpreter, and an accompanying test case test_help_version().
0e660f5 For the language check in GetObjectDescription, if we can't find a language runtime for the value we're looking at, BUT it IS at least a pointer, try the ObjCRuntime language. That's currently the only language runtime that has an object description method anyway...
a7a9c89 "frame variable" requires that the process be running and paused or there aren't any frames... So mark the command properly as such.
0ace30f Add a test case for the SBFrame APIs. In particular, it uses the frame API to get the argument values of the call stacks when stopped on the breakpoint.
ba1c82d No need to pass an empty string as an arg or as an env string to the SBTarget.LaunchProcess() API.
17ac79b Simplify the breakpoint command function. Instead of fetching the command interpreter and run the "process continue" command, use the SBProcess.Continue() API.
e5001f5 Broadcaster::AddListener(): Bail out early if the passed in Listener pointer is NULL, instead of registering a NULL listener and to crash later.
be9f0b9 Modify one assertion message.
d4c5cd5 RegisterContextLLDB.cpp (InitializeNonZerothFrame): If we get a 0 mid-stack, stop backtracing.
ec8ebe9 Fix some typos in the docstrings and also update the test method names.
69450cd Add test cases for registering a listener object with the broadcaster of a process and waiting for two expected state changed events to arrive: "running" followed by "stopped".
0137f91 Rename the test methods to be more meaningful.
c132a18 Set the debugger to asynchronous mode before using the Python API call to kill the process. The custom thread started before this point is running in a loop waiting for events to come.
a2cec4f Updated Xcode build version to lldb-37 and debugserver-123.
add437a Fix typo.
ca4c724 Added python_api/event/TestEvents.py to get the listener object associated with the debugger and to exercise some event APIs.
f5c9ffb Remove an assertion that is causing crashes. We do need to find a way to reproduce when this assertion asserts, but we should crash our debug session because of it. For now we log to stderr in hope of tracking it down.
7de5fde The recent change in argument parsing is messing up the emacs lldb mode's capability to properly scan the debugger output for program counter when it comes to the output of 'Up Stack' or 'Down Stack' gud commands. Remove the single quotes around the argument strings for "settings set frame-format" and "settings set thread-format" commands to avoid the single quotes which were being emitted as part of the debugger output.
9e3f746 Patch from Stephen:
ff7c3e9 Patch from Stephen Wilson:
7add599 Change the test case test_set_prompt() to no longer require quotes around lldb2 in:
0d6e36a Patch from Stephen Wilson:
bdcda46 The LLDB API (lldb::SB*) is now thread safe!
f5e4326 Patch from Stephen Wilson:
c044686 Add code to make sure InputReaders finish and are cleaned up when a Debugger object is destroyed or re-set. (Thus making sure that, for example, the Python interpreter finishes and exits cleanly rather than being left in an undefined state.)
15bc1f5 Line tables were trying to be too clever and only use 24 bits for a line table offset where the offset is within a section. Increased the section offset for line table entries to be 32 bits (from 24 bits), giving each section a 4G offset, and increased the section index to 32 bits (from 8 bits).
80733ea Removed logging code that I accidentally left in after recent changes.
928d130 Improved our argument parsing abilities to be able to handle stuff more like a shell would interpret it. A few examples that we now handle correctly
b73620c Linux patches from Stephen Wilson.
576b965 Linux patches from Stephen Wilson.
ca66a5f Linux patches from Stephen Wilson.
f6d8b67 Linux patches from Stephen Wilson.
d6dfe04 Linux patches from Stephen Wilson.
14243ea Fixed the handling of the _cmd parameter in the i386 ABI.
2a99b2a Fix wrong test logic -- should pass "-s address" option to "image dump symtab" in order to sort the output by address.
3b2cfc2 Bumped Xcode project versions to for lldb-36 and debugserver-122.
dad0b76 Removed darwin specific CPU type defines to make UnwindAssemblyProfiler_x86 able to compile on linux (patch from Stephen Wilson).
6e889b1 Removed libunwind sources as we aren't using them anymore.
c5157ec Added access to set the current stack frame within a thread so any command line commands can use the current thread/frame.
eb04783 Modify the regexp to match the debugger output of the 'Up Stack' and 'Down Stack' gud commands in order to more reliably locate the program counter and to display the file-and-line.
e01879a Fixes for linux building from Stephen Wilson.
adb909b Fixes for linux building from Stephen Wilson.
6d29aeb Added header doc for the recently added Process::ReadUnsignedInteger (addr_t addr, size_t int_byte_size, Error &error) function.
f72fdee Added the ability to read unsigned integers from the Process:
e404746 Use SBModule.GetDescription(SBStream) API to get the module description to match against.
6c884d2 Update the comment section of blacklist.py with the command line to reproduce the crash.
01cd93d Remove #include of non-existant lldb/Expression/ASTSplitConsumer.h (from Sean's commit a minute ago)
05a5a1b Implemented a feature where the expression parser can avoid running the code in the target if the expression's result is known and the expression has no side effects.
dc3e063 Patch from Stephen Wilson:
002e869 Add python_api/symbol-context to test getting the symbol context while stopped on a frame and to exercise the methods of SBSymbolContext.
c1955f2 Patch by Stephen Wilson to make Swig happy building on linux. Pass the test suite on Mac OS X Snow Leopard.
cf660db Fix one of the golden output of "frame variable -t *self" to be:
b3e7181 Fix typos in SBBreakpoint::GetThreadIndex()/GetThreadName(), and test sequences for the two API calls.
1f3dd64 Fix invalid conversion from "const char *" to "char *" for linux systems. strchr() on darwin returns "char *" so we weren't seeing this issue on MacOSX.
a625387 Fixed an error where the thread index was being returned as zero in "uint32_t SBBreakpoint::GetThreadIndex() const" even when it isn't specified. It should be UINT32_MAX to indicate there is no thread index set for the breakpoint (the breakpoint isn't thread specific). Also fixed the ThreadSpec.cpp to use UINT32_MAX instead of -1. Fixed the logging Printf statement in "uint32_t SBBreakpoint::GetThreadIndex() const" to not print the address of the "index" function from <string.h>!
fd570ba Added a test for finding the correct values for ivars when a property causes the ivar offsets in the DWARF to be incorrect.
ba23f58 Add an entry for test case BasicExprCommandsTestCase.test_evaluate_expression_python, due to crashes while running the entire test suite with clang-126.
67637d8 Add termination instructions when entering the interactive script interpreter.
d36f590 Add test cases to test various aspect of the 'alias' command.
c3b61d2 Fixed the "expression" command object to use the StackFrame::GetValueForExpressionPath() function and also hooked up better error reporting for when things fail.
5d1ff14 Move the demangle-failed indication out a bit so other failing cases also get marked as having failed (so we don't try to demangle the same symbol multiple times).
6983cda Fix a crash on some platforms where a dSYM for a system library lists a DW_AT_mips_linkage_name for a non-mangled function - we pass the non mangled string down through abi::__cxa_demangle and it crashes. Usually passing non mangled strings to abi::__cxa_demangle works out fine but not always, apparently.
3cdf729 Modify the test case to run under ['gcc', 'llvm-gcc', 'clang'] x ['x86_64', 'i386'] combinations.
387fe61 Add test cases to make sure the Command Interpreter is handling command completion properly (e.g. abbreviated commands, which are NOT the same as aliases).
1decbac Rearrange some statements so that the adding of teardown hook follows immediately after the statement it wants to revert the effect of.
a50971f Make the TestSettings.py test cases use different output filenames:
4370585 Fixed a crasher in the DWARF log channel code.
26923fe Updated the code signing instructions to be more complete.
539b3ef Removed unused files that were out of date and causing issues with the linux build.
ec88274 Execute the test case teardown hooks in a LIFO (last in, first out) order. ALso add a teardown hook to the LoadUnloadTestCase.test_dyld_library_path() test case to have it restore the DYLD_LIBRARY_PATH environment variable.
b201736 Added a test case LoadUnloadTestCase.test_dyld_library_path to test launching a process linked with a dylib which has been relocated by specifying the DYLD_LIBRARY_PATH environment variable. Test that the function name breakpoint defined in the dylib is resolved.
cf03765 Fix the completion of "fr " and the like.
a8e2ea7 Modify test cases to accomodate Python API change:
56d2fc4 Fix small bugs:
4e9267d Changed: SBValue SBFrame::LookupVar(const char *name); To SBValue SBFrame::FindVariable (const char *name);
d1a4796 Change the golden output so that merely evaluating an existing persistent variable does not result in a newly created persistent variable. The old one is returned, instead.
0c8a190 Fixed rdar://problem/8767055 test suite failure TestStaticVariables.py (ToT r121745). Populate the variable list from the stack frame, first.
dd62d72 Fixed SBFrame to properly check to make sure it has a valid m_opaque_sp object before trying to use it.
427f290 Modified LLDB expressions to not have to JIT and run code just to see variable values or persistent expression variables. Now if an expression consists of a value that is a child of a variable, or of a persistent variable only, we will create a value object for it and make a ValueObjectConstResult from it to freeze the value (for program variables only, not persistent variables) and avoid running JITed code. For everything else we still parse up and JIT code and run it in the inferior.
047923c Bugfixes for the new "self" pointer handling. Specifically, the code to pass the _cmd pointer has been improved, and _cmd is now set to the value of _cmd for the current context, as opposed to being simply NULL.
3aa7da5 Added support for generating expressions that have access to the members of the Objective-C self object.
7a4512b Add TestBreakpointIgnoreCount.py to exercise the breakpoint ignore count features, with both command line and Python API tests.
4877965 Revert a small but important part of the EOF handling code that Greg missed in his previous revert.
5aa1ebc Make the test case SourceManagerTestCase.display_source_python stronger by also matching the source line number displayed.
ff5cac2 Fixed a crasher where when a ProcessGDBRemote class was being destroyed, it would eventually destroy the dynamic loader (when the lldb_private::Process::m_dynamic_loader_ap destroys itself in the object member destructor chain). The dynamic loader was calling a pure virtual method in Process which was causing a crash. The quick fix is to reset the auto pointer in the ProcessGDBRemote destructor when ProcessGDBRemote is still a valid object with all its pure virtual functions intact.
9e7958e Updated to latest Clang revision. This involved very minor changes, changing how we get the target type from a TypedefType, adding a parameter to EnumDecl::Create(), and other minor tweaks.
b89274f Fixed a multi-threaded race condition that could happen when communication classes are shutting down. We currently don't protect communication connection classes against multi-threaded access. The connection is stored in the lldb_private::Communication.m_connection_ap auto_ptr member. We either need to add protections when accessing this class or not let anything racy occur. With this fix, we are doing the latter.
ab42902 Fixed an issue where the macosx dynamic loader, on the first shared library loaded notification, wasn't properly removing shared libraries from the target that didn't get loaded. This usually happens when a different shared library is loaded in place of another due to DYLD_LIBRARY_PATH or DYLD_FRAMEWORK_PATH environment variables. We now properly remove any images that didn't make it into the executable.
ea49cc7 Added the ability for SBTarget to resolve load addresses (convert lldb::addr_t values into resolved SBAddress objects). These SBAddress objects can then be used to resolve a symbol context using "lldb::SBSymbolContext ResolveSymbolContextForAddress (const lldb::SBAddress& addr, uint32_t resolve_scope);".
ea6e3df Fix bug where using incomplete strings for command names causes lldb to crash (because of attempt to look for full names when full names were not used).
e5791dd Add test_display_source_python() test case to TestSourceManager.py which uses the lldb PyThon API SBSourceManager to display source files.
887d251 Made all LLDB-generated ASTContexts have valid DiagnosticClients, and removed code that was patching over the original problem.
3f1696c Make sure that @python_api_test is only used to decorate a test method, not the test class.
494735d Simplified the code that handles overloaded operator names.
cc659ad Do not specify both '-a' and '+a' at the same time.
3ebdacc Add a '+a' command line option to the test driver to run only the Python API tests. Add an attribute __python_api_test__ (set to True) to the @python_api_test decorated test method to distinguish them from the lldb command line tests.
ec953b5 Add the @python_api_test decorator for two test cases.
ad5518d Fix some typo in method names and docstrings.
9ac4be9 Added some tests for ObjC stepping, step into ordinary and stret methods, and stepping through a KVO swizzled object's method calls.
c2c9a14 Fixed detection of overloaded operators in type information. Previously, "operator[]" was not being recognized because the detector was looking for "operator " as a prefix. Now we handle both cases.
0678f8e Add @python_api_test decorator to the remaining Test*.py files.
013c574 Fix a test method docstring.
4f93bf1 Add an infrastructure to mark the Python APIs only test using a decorator. Example:
5899a23 Added the source file for some ObjC stepping tests. No test yet.
d9105c2 Various fixes mostly relating to the User Settings stuff:
6507dd9 Changing the ObjC find method implementation to use a ClangUtilityFunction inserted into the target. Consolidate all the logic for finding the target of a method dispatch into this function, insert & call it. Gets calls to super, and all the fixup & fixedup variants working properly. Also gets the class from the object so that we step through KVO wrapper methods into the actual user code.
e0da7a5 Modify HandleCommand to not do any argument processing until it has determined whether or not the command should take raw input, then handle & dispatch the arguments appropriately.
f831222 Add more module docstring.
28e4966 Minor docstring change.
22dc972 process launch now asks to kill the current process if it is alive, and if you affirm, does so for you. Also added #pragma mark for the command objects defined in the file.
88044a9 Remove unnecessary imports.
6f7abb0 Add a test/source-manager directory for testing lldb core component SourceManager. Initial test case test_modify_source_file_while_debugging() in TestSourceManager.py tests the caching mechanism of the source manager.
4dc1892 Any arguments that are not options to the "lldb" command line driver, now get used as the arguments for the inferior program. So for example you can do
61e2c30 Fixed an issue in our source manager where we were permanently caching source file data, so if a source file was modified, we would always show the first cached copy of the source data. We now check file modification times when displaying source info so we can show the update source info.
deaf884 Add more docstring for the lldb_iter() utility function which provides a compact way of iterating through an aggregate data structure. The added example usage is from an actual use in test/foundation/TestSymbolTable.py:
4d426c6 Modify the TestObjCMethods2.py test to fix a typo (should be str_id, not id). Also, add bug info for expected failures that remain:
3355d11 Bumped lldb Xcode version to 35 for lldb-35, and debugserver to 121 for debugserver-121.
58e844b Added the ability to dump sections to a certain depth (for when sections have children sections).
fa2f48b Fixed up the error message for when a file is not supported.
8290758 Fixed a problem where the AST importer would assert() because the diagnostic client for one of the AST contexts is NULL. Now we provide a form of Miranda rights to AST contexts: they are provided with a very simple diagnostic client if they do not have one themselves.
8fd886c For SBTarget.Launch()/LaunchProcess(), there's no need to pass an empty string as the args and the envs to the launched process.
a3a67d4 Add test_evaluate_expression_python() to exercise SBFrame.EvaluateExpression() Python API. Launch the process with ['X', 'Y', 'Z'] as the args to make argc == 4 and verify that's the case, plus some other EvaluateExpression() calls.
5045fdc Use Python raw string literal to avoid escaping the escape sequence and to make the command given to lldb command interpreter more readable.
94d255f More logging for use in debugging the interactions between clients of the LLDB API and the expression parser.
94756b1 Make the various expression command test sequences more strict by also verifying the results against our golden ones.
6369bbb Add a test sequence for test_expr_commands_can_handle_quotes(self):
6cdafd7 Remove comment no longer applied.
44c841d - Fix alias-building & resolving to properly handle optional arguments for command options. - Add logging for command resolution ('log enable lldb commands') - Fix alias resolution to properly handle commands that take raw input (resolve the alias, but don't muck up the raw arguments).
0bbe13a Add test/foundation/TestSymbolTable.py to exercise accessing the symbol table entries (including synthesized properties) through the lldb Python APIs.
7b85755 Cleanup before making the objective C ivar changes.
42c8fdc Improved the "image dump section" command output by making sure it indents and shows things correctly. When we are debugging DWARF in .o files with debug map, we can see the remapped sections by dumping the sections for the .o files by explicitly dumping the module by name. For example, debugging the lldb/test/class_types example on MacOSX without a dSYM file we can make a query that causes the main.o file to be loaded, then we can do a:
c418ec2 'thread backtrace', not 'thread backtrac'.
f9954b5 The do_simple_disasm() also needs to be modified to accommodate the recent changes to main.m.
3371102 Logging improvements to help identify major events in LLDB expression execution. We also now print the argument structure after execution, to allow us to verify that the expression did indeed execute correctly.
9d972a4 Fixed an issue when debugging with DWARF in the .o files where if two functions had the same demangled names (constructors where we have the in charge and not in charge version) we could end up mixing the two up when making the function in the DWARF. This was because we need to lookup the symbol by name and we need to use the mangled name if there is one. This ensures we get the correct address and that we resolve the linked addresses correctly for DWARf with debug map.
6728364 Forgot to qualify SBSymbol with the lldb namespace for SWIG.
43edca3 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.
78b9ee8 Handle the case where you make a ClangExpressionDeclMap without a selected frame.
61a000d Add expect matching patterns for some self.expect() statements.
c4217a6 Fixes to make id work as well as well as fix minor errors when calling built-ins.
7b9fcc0 When shared libraries are unloaded, they are now removed from the target ModuleList so they don't show up in the images. Breakpoint locations that are in shared libraries that get unloaded will persist though so that if you have plug-ins that load/unload and you have a breakpoint set on functions in the plug-ins, the hit counts will persist between loads/unloads.
265da22 Add TestObjCMethods2.py to exercise more expression command sequences with objc. Mark NSArray_expr() and NSString_expr() as currently failing. Both are called from dsym and dwarf builds. So that makes the num of expected failures equal 4.
e6eb972 Minor comment string change.
726cbce More descriptive comment string.
3ab6cf0 Modify Test_Selector's comment string, too.
4f1ef9d Disambiguate the comment strings in order to be used from the .py test file.
b9f09a6 Fixed a bug in which the SEL type was being resolved wrongly as the target of a pointer rather than the SEL pointer itself. This caused incorrect behavior when dealing with Objective-C selector variables.
e54840c Modified main.m and TestObjCMethods.py to unbreak the test/foundation directory.
0bb9b5c Forgot to also check in this file with the previous r121036 change:
46ffd86 Fail fast by raising an exception if the 'string_to_match' cannot be located within the file 'filename'.
55e1bdf Add a test case test_lldb_process_load_and_unload_commands() for using lldb commands 'process load' and 'process unload' to load and unload shared library from lldb command lines.
6e5d9e0 Added more test case functions to cover more objective C functionality.
ecd834d Add two test cases to exercise many expression commands: o test_many_expr_commands() o test_expr_commands_can_handle_quotes()
9b0d14e Use full command to avoid "expr" alias. Add bug number for current expected failures.
363527c Added a simple test case that can be used to test out the expression parser more completely. Example expressions are in the comments.
7cd4674 Fixed a problem in which non-external variables (for example, string literals) were being flagged erroneously as undefined external variables.
422b1ae Added a less than operator that will compare the internal opaque pointer values so SBBroadcaster objects can be contained in ordered containers or sorted.
0e0fd1c Fixed an issue where SBProcess::LoadImage(...) was not returning the image token.
3ca95da Added "void SBBroadcaster::Clear ();" method to SBBroadcaster.
4f46cd1 Fixed a crasher when trying to get event data flavors on events that don't have event data.
b378133 Make sure that STDOUT and STDERR events in lldb_private::Process carry along a ProcessEventData so clients can get the process from these events.
7524a1d Bumped Xcode project build version to 34 for lldb-34.
eecb0f3 More reverting of the EOF stuff as the API was changed which we don't want to do. Closing on EOF is an option that can be set on the lldb_private::Communication or the lldb::SBCommunication objects after they are created. Of course the EOF support isn't hooked up, so they don't do anything at the moment, but they are left in so when the code is fixed, it will be easy to get working again.
bd91d9a Reverted the close on EOF stuff again as it was crashing Xcode.
fee8886 Add a test method test_pass_host_env_vars to 'class SettingsCommandTestCase(TestBase)' which tests the recently added lldb feature of automatically passing the host environment variables to the launched process.
304fab4 Bumped lldb version to lldb-33 and debugserver to debugserver-120.
a99b0bf Added the ability to display the new "target.process.inherit-env" setting.
638351a Added the ability for a process to inherit the current host environment. This was done as an settings variable in the process for now. We will eventually move all environment stuff over to the target, but we will leave it with the process for now. The default setting is for a process to inherit the host environment. This can be disabled by setting the "inherit-env" setting to false in the process.
1ad9e99 Forgot to also check in this file along with the TestBreakpointConditions.py change.
7c9a8b5 Test that "breakpoint modify -c ''" clears the condition for the last created breakpoint, so that when the breakpoint hits, val = 1 instead of 3.
9a7b291 Documentation fix - explain how to unset conditions. Also fix unsetting -x and -t so they work.
19ac0bd Document the fact that "breakpoint modify" with no breakpoint acts on the last created breakpoint.
539d945 Make sure to index the DWARF if we already haven't so we can resolve forward declarations when they haven't been found yet.
7d6d844 Add the '-F' option to the test driver, which makes the running of test suite failfast. As soon as an error or a failure is encountered, it stops the test suite.
f921cf5 Eliminated a redundant code path.
bd66601 Add '-no-stdio' option to 'process launch' command, which causes the inferior to be launched without setting up terminal stdin/stdout for it (leaving the lldb command line accessible while the program is executing). Also add a user settings variable, 'target.process.disable-stdio' to allow the user to set this globally rather than having to use the command option each time the process is launched.
1cee7ab Fixed an issue that would cause an assertion to fire when an inlined function was found during a regex function find call.
31ab22b Make sure timed_out is initialized to false just to be on the safe side.
b749a26 Fixed a race condition that could cause ProcessGDBRemote::DoResume() to return an error saying the resume timed out. Previously the thread that was trying to resume the process would eventually call ProcessGDBRemote::DoResume() which would broadcast an event over to the async GDB remote thread which would sent the continue packet to the remote gdb server. Right after this was sent, it would set a predicate boolean value (protected by a mutex and condition) and then the thread that issued the ProcessGDBRemote::DoResume() would then wait for that condition variable to be set. If the async gdb thread was too quick though, the predicate boolean value could have been set to true and back to false by the time the thread that issued the ProcessGDBRemote::DoResume() checks the boolean value. So we can't use the predicate value as a handshake. I have changed the code over to using a Event by having the GDB remote communication object post an event:
f3143b7 Removed a compiler warning.
aa301c4 Fixed object lifetimes in ClangExpressionDeclMap so that it is not referring to potentially stale state during IR execution.
c0da615 Fixed DoResume to watch for the correct return value from WaitForIsRunning to avoid spurious errors due to previous fix.
220494a Fixed bad logic that was trying to determine if the gdb remote resumed a process or not.
58bf344 Log just the thread name, not process/thread id for easier human reading.
22defe8 Updated to latest LLVM/Clang for external AST source changes that allow TagDecl subclasses and Objective C interfaces to complete themselves through the ExternalASTSource class.
19eee0d When logging, enable process and thread ID recordings. Also add 'state' to the lldb log-categories, so it now becomes "event process expr state".
9c11d47 Fixed a typo in comment.
4844365 Fixed IRForTarget so that it errors out when function pointers are used. Previously, they caused a crash in the JIT because we didn't resolve them correctly.
7ab8c85 For lldb loggings, prepend log lines with a timestamp. And change the default log options:
9ac497b Add proper EOF handling to Communication & Connection classes:
21c7c21 On second thought, inserting a delay of 1.0 second slows down the test suite for the types directory quite a bit and masking out potential problems. Enable the delay via an environment variable, instead.
118d742 GenericTester.generic_type_expr_tester():
0eaaf32 Add a mechanism of overwriting the default 1.0 second wait time between test cases when specifying '-w' to the test driver, by using an environment variable LLDB_TIME_WAIT_BETWEEN_TEST_CASES.
c95fe32 Remove @expectedFailure decorator as the bug has been fixed.
ecfc3cf TestBase.setUp() needs to make sure lldb.blacklist is not None before iterating on it.
82e6b1e Add a '-b blacklistFile' option to the test driver to take a file specifying the test classes or test cases to be excludued from the test suite.
97bd567 Fixed 32 bit debugging after recent architecture changes to debugserver.
e8e5557 Fixed ClangUserExpression's wrapping of expressions in C++ methods. There were two fixes involved:
cfc53a2 Add test cases to test that:
4d0b110 Allowed ClangExpressionDeclMap to dematerialize persistent variables even after the parser has finished running.
a65b527 Whitespace fix.
dc6c263 Make CommandObjectMultiword::GetSubcommandSP() more robust by appending the exactly-matched sub_cmd to the passed in 'matches' string list.
a2b1ac8 Remove the @expectedFailure decorator as the bug has been fixed.
dd1f02a GetCommandObject returns no matches in the match array when there is only one match. That's odd, but I don't want to change that right now, just cope with it where I'm doing the command matching.
61eb4f1 Add @expectedFailure decorator for a known bug:
8bf15e2 Add expectedFailure decorator for test_help_image_dump_symtab_should_not_crash(). Possibly due to http://llvm.org/viewvc/llvm-project?rev=120484&view=rev.
c2d382c Fix completion for multi-word commands in the "help" command.
0d037c9 Remove @skip decorators for fixed crashes.
1e61a63 Fixed a problem where m_register_info was not being copied by the copy constructor for ClangExpressionVariable. This meant that a NULL m_register_info wouldn't be copied, and instead the field was uninitialized, potentially confusing the materializer.
85c697b Skip two test classes due to:
12c32c1 Entire test class skipped due to:
0381063 Entire test class skipped due to:
a707b02 Skipped two test cases due to seg fault while hadnling command:
677228a Entire test class skipped due to:
360f53f Moved the code in ClangUserExpression that set up & ran the thread plan with timeouts, and restarting with all threads into a utility function in Process. This required a bunch of renaming.
1ddd9fe Added a feature where registers can be referred to using special $-variables from expressions.
6bdc124 Add comment for a branch of test logic which applies to ['clang', 'llvm-gcc'] only.
b1349b6 Minor comment fix.
a99bcaa Fix build error when lldb is being built i386.
24f43be Add an expect() statement within breakpoint_conditions() method which tests that the process status is indeed 'stopped' before invoking 'frame variable -t val' command to inspect the frame variable. When I run the test suite, it sometimes emits an output like:
458a67e Change the variable TestBase.timeWait to the more descriptive timeWaitNextLaunch. Increase the delta between successive test cases, enabled with the '-w' option to the test driver, from 0.5 to 1.0 second, to arrive at a cleaner state before the next test case.
d6e7ca2 Add comment.
360dd37 When looping through the test suite more than once (repeat count > 1), we should ignore and not enforce the signleton pattern for the LLDBTestResult class.
b4e19b3 When we resolve a forward declaration type, be sure to put it into the m_die_to_type map so we don't assert later when someone tries to resolve the type.
ba4fc4a Removed a stray dump() that made it into top-of-tree.
4b5eec6 Made GetVariableValue() more robust in the face of failures in the AST importer. Also ensured that a variable will not be blindly added if GetVariableValue() returns an error.
65e2aee Removed a stray dump().
8e69de4 Change the DWARFExpression::Evaluate methods to take an optional RegisterContext* - normally this is retrieved from the ExecutionContext's StackFrame but when we need to evaluate an expression while creating the stack frame list this can be a little tricky.
42bee05 Revert the End of file stuff that was added as it was causing read threads to hang around and take a ton of CPU time. Caroline will fix this when she gets back from vacation.
eae9124 Updated to latest and greatest clang for a "print cvr-qualifiers on function declarations" fix.
c4f55fe Add the ability to catch and do the right thing with Interrupts (often control-c) and end-of-file (often control-d).
a5cf463 Add TestSignedTypes.py to test that variables with signed types display correctly.
ee8fc72 Modifications to type handling logic. We no longer perform recursive type lookups, because these are not required for full type fidelity. We also make the SelectorTable last for the full lifetime of the Clang compiler; this was the source of many bugs.
c35750a Fill in more test sequences for Python API SBFrame.LookupVarInScope(name, scope).
7fab17c Print out addresses with the correct width for 32 bit programs.
c0c1b0c Fixed an issue where the UserSettingsControllers were being created out of order and this was causing the target, process and thread trees to not be available.
a91dd99 Added support for indicating to the expression parser that the result of an expression should be coerced to a specific type. Also made breakpoint conditions pass in the bool type for this type.
3c7feb4 Added some logging back and cleaned up the code to match LLDB's coding conventions.
742825b Add Python API tests for file and class static variables, too.
990de7b Cleaned up code that wasn't using the Initialize and Terminate paradigm by changing it to use it. There was an extra parameter added to the static accessor global user settings controllers that wasn't needed. A bool was being used as a parameter to the accessor just so it could be used to clean up the global user settings controller which is now fixed by splitting up the initialization into the "static void Class::Initialize()", access into the "static UserSettingsControllerSP & Class::GetSettingsController()", and cleanup into "static void Class::Terminate()".
ae71e30 Fixed the logic in IRForTarget that recognizes externally-defined variables to match up with the code in ClangASTSource that produces them.
3c3f9a3 Add a test for displaying file and class static variables.
ed1e298 Remove whitespace chars.
640dc6b Added the ability to get more information on the SBThread's stop reason by being able to get the data count and data. Each thread stop reason has one or more data words that can help describe the stop. To do this I added:
27eb3f7 Added missing file.
20d338f Fixed Process::Halt() as it was broken for "process halt" after recent changes to the DoHalt down in ProcessGDBRemote. I also moved the functionality that was in ProcessGDBRemote::DoHalt up into Process::Halt so not every class has to implement a tricky halt/resume on the internal state thread. The functionality is the same as it was before with two changes: - when we eat the event we now just reuse the event we consume when the private state thread is paused and set the interrupted bool on the event if needed - we also properly update the Process::m_public_state with the state of the event we consume.
1069175 Instructions for building LLDB with a debug LLVM build under Xcode.
8a3b0a8 Updated to the LLVM/Clang of 2010-11-17 at 3:30pm.
cdea236 The thread plan destructors may call Thread virtual methods. That means they have to get cleaned up in the derived class's destructor. Make sure that happens.
6ba533e Added support for constant strings of the form @"this-is-a-string". They are replaced with calls to the CoreFoundation function CFStringCreateWithBytes() by a portion of the IRForTarget pass.
b34ffcb Whitespace fix.
c783660 Add a missing newline to the ThreadPlanAssemblyTracer output.
ae7862a Add a ThreadPlanAssemblyTracer that takes just a thread (since that's how we call it from ThreadPlanBase...)
3ae449a Added an "Interrupted" bit to the ProcessEventData. Halt now generates an event with the Interrupted bit set. Process::HandlePrivateEvent ignores Interrupted events. DoHalt is changed to ensure that the stop even is processed, and an event with the Interrupted event is posted. Finally ClangFunction is rationalized to use this facility so the that Halt is handled more deterministically.
6b22756 Make the string matching for 'frame variable' more stringent with respect to output from clang and llvm-gcc compiled program; both generate the correct debug info with respect to the typedef scoped inside a namespace.
d2acdb3 Add an option '-# count' to run the specified test suite for a said number of times. This is not to be used during normal test suite run, but to be used to stress test specific test sequences repeatedly.
bd4d7ba Use different qualifier enums on the request of a clang engineer.
21d77c3 Initial check-in of a Python utility to run the lldb test suite and send the result including the session logs of test failures/errors as a MIME message.
95c3bbd Disambiguate the name lookup for the data type of anon_uint variable.
861efb3 Make processes use InputReaders for their input. Move the process ReadThread stuff into the main Process class (out of the Process Plugins). This has the (intended) side effect of disabling the command line tool from reading input/commands while the process is running (the input is directed to the running process rather than to the command interpreter).
19e5435 Add an UnwindPlan Row for the last instruction of a function when we're using the stack pointer to define the CFA again. Makes unwinds while sitting at the 'ret' instruction work, assuming we have accurate function address bounds.
2403b5e First attempt and getting "const" C++ method function signatures correct. It currently isn't working, but it should be close. I will work on this more when I figure out what I am not doing correctly.
5962c55 Check in a test case for rdar://problem/8668740:
35c837d Add radar info for failed expression command test sequences which are now commented out.
0611df8 Also add a test for "frame variable '(anonymous namespace)::i'", plus expression command using fully qualified names.
ecc5be2 Add test sequences for 'frame variable' address-of operator and 'frame variable' fully-qualified name variable. Also add some comments.
d02f969 Add test sequence for 'frame variable this' and 'expression this' when stopped inside a ctor.
3d97b06 Remove the @expectedFailure decorator and uncomment 'expression -- i + j" test, as both rdar://problem/8659840 and rdar://problem/8660275 have been fixed.
b5037af Added quotes around names that are being lookup up or inspected in the expression logging.
a8b278a Added recursive name lookup logging with depth which is commented out and is currently only enabled when we blow the stack.
36b7336 Added the address of operator for the "frame variable" command.
9b557e5 Fixed the initWithNSString: function to properly initialize self.
3bc52d0 Just like functions can have a basename and a mangled/demangled name, variable can too. So now the lldb_private::Variable class has support for this.
034c996 Fixed an issue where we were trying to resolve lldb_private::Type encoding types to their full definitions more than we needed to. This caused an assertion in the DWARF parser to fire -- which is an indication that we are parsing too much.
feb6e56 Fixed a crasher (an assert was firing in the DWARF parser) when setting breakpoints on inlined functions by name. This involved fixing the DWARF parser to correctly back up and parse the concrete function when we find inlined functions by name, then grabbing any appropriate inlined blocks and returning symbol contexts with the block filled in. After this was fixed, the breakpoint by name resolver needed to correctly deal with symbol contexts that had the inlined block filled in in the symbol contexts.
e4b9df0 Fixed an issue where we might not find global variables by name when we have a debug map with DWARF in the .o files due to the attemted shortcut that was being taken where the global variables were being searched for by looking in the symbol table. The problem with the symbols in the symbol table is we don't break apart the symbol names for symbols when they are mangled into basename and the fully mangled name since this would take a lot of CPU time to chop up the mangled names and try and find the basenames. The DWARF info typically has this broken up for us where the basename of the variable is in a the DW_AT_name attribute, and the mangled name is in the DW_AT_MIPS_linkage_name attribute. Now we correctly find globals by searching all OSO's for the information so we can take advantage of this split information.
9ceed1e Got namespace lookup working and was able to print a complex "this" as an expression. This currently takes waaaayyyyy too much time to evaluate. We will need to look at the expression parser and find ways to optimize the info we provide and get this to evaluate quicker. I believe the performance issue is currently related to us always providing a complete C++ class type when asked about a C++ class which can cause a lot of information to be pulled since all classes will be fully created (methods, base classes, members, all their types). We will need to give the classes back the parser and mark them as having external sources and get parser (Sema) to query us when it needs more info. This should bring things up to an acceptable level.
6916e35 Modified the lldb_private::Type clang type resolving code to handle three cases when getting the clang type: - need only a forward declaration - need a clang type that can be used for layout (members and args/return types) - need a full clang type
e752546 Implement TODO's of using expression command to set vaiables and to verify that they are displayed correctly.
e4b0784 I'm not thrilled with how I structured this but RegisterContextLLDB needs to use the current pc and current offset in two ways: To determine which function we are currently executing, and the decide how much of that function has executed so far. For the former use, we need to back up the saved pc value by one byte if we're going to use the correct function's unwind information -- we may be executing a CALL instruction at the end of a function and the following instruction belongs to a new function, or we may be looking at unwind information which only covers the call instruction and not the subsequent instruction.
5b0228a Added a thread plan tracer that prints lines of assembly as well as registers that changed.
3e783a9 Fixed more thread suspend/resume issues.
da6b16e Added OnStart and OnEnd methods to the tracer.
d212db0 Temporary extension of the timeout for Objective-C object diagnostic expressions while we work on the logic for handling the timeout.
67dc8e7 Removed redundant code for object introspection.
4868568 Excised a version of the low-level function calling logic that supported calling functions with arbitrary arguments. We use ClangFunction for this, and the low-level logic is only required to support one or two pointer arguments.
e0eb5cd Add information for two bugs exposed by this test file.
710dfe0 Run commands 'expression self->str' and 'expression self->date'. They should not fail.
d08406f Fix the @expectedFailure usage error and add a commented out section of code to exercise 'expression' command on namespaced variables.
02274ed Fixed an issue with the MachThread class where we might not get the initial thread basic info state and not realize that a thread was already suspended or if a thread was starting up and not ready to be displayed to the user (in an uninterruptable state). If it is not user ready yet, we don't add it to our list of threads that can be played with.
6cea1c8 Add @expectedFailure decorator for test_with_dwarf_and_run_command() test method:
b527f26 The session log entry containing the command to rerun the same test now also includes the architecture and compiler specs.
ef7a5fc Add TestNamespace.py to exercise printing of anonymous and named namespace variables.
b7c59ce Simplify Makefile.
a85859f Add help message for the scenario of using lldb.py module distributed by Xcode4 to invoke the test driver.
7235a5e Make clang happy.
9e974ff Fixed compilation warnings emitted by clang. Plus make finding the break line number in main.cpp more robust.
2b8732c Fixed an issue with Function::GetPrologueByteSize() where if a function's first line table entry didn't have the same address as the start address of the function itself, we could end up returning and incorrect value.
745ac7a Add ThreadPlanTracer class to allow instruction step tracing of execution. Also changed eSetVarTypeBool to eSetVarTypeBoolean to make it consistent with eArgTypeBoolean.
917b09a Added a simple test for:
abab590 Bumped Xcode versions to lldb-32 and debugserver-119.
53d287b Fixed an issue where we might not be able to track down a real definition of a forward declaration to a struct and hangle it gracefully (don't crash trying to ask clang how many children an empty record has).
07c55d1 Disable the debug logging I accidentally left enabled.
e8587d0 Some rewordings of the assert messages for process stopped due to breakpoint.
d7cb26e Added initial support to the lldb_private::SymbolFile for finding namespaces by name given an optional symbol context. I might end up dressing up the "clang::NamespaceDecl" into a lldb_private::Namespace class if we need to do more than is currenlty required of namespaces. Currently we only need to be able to lookup a namespace by name when parsing expressions, so I kept it simple for now. The idea here is even though we are passing around a "clang::NamespaceDecl *", that we always have it be an opaque pointer (it is forward declared inside of "lldb/Core/ClangForward.h") and we only use clang::NamespaceDecl implementations inside of ClangASTContext, or ClangASTType when we need to extract information from the namespace decl object.
634c86f Slight changes to how to phrase the assert for Python API thread.GetStopReason().
631c45d Finish adding the actual stop reason as part of the assert message when asserting:
c82ac76 Add the actual stop reason to an assert message for bitfields_variable_python() test method when asserting:
fddc25a Silence a bunch of clang warnings.
74e55ed Don't keep appending to the current crash description with each formatted crash description call.
2ade611 Move the embedded Python interpreter onto a separate thread, to prevent main thread from having to wait on it (which was causing some I/O hangs).
cb39544 Trivial fix for an error message.
b1a3d9c Remove @skip decorator:
83e8b9d Remove an obsolete reference to immediate plans.
e98ac25 Modified lldb_private::SymboleFile to be able to override where its TypeList comes from by using a virtual function to provide it from the Module's SymbolVendor by default. This allows the DWARF parser, when being used to parse DWARF in .o files with a parent DWARF + debug map parser, to get its type list from the DWARF + debug map parser so when we go and find full definitions for types (that might come from other .o files), we can use the type list from the debug map parser. Otherwise we ended up mixing clang types from one .o file (say a const pointer to a forward declaration "class A") with the a full type from another .o file. This causes expression parsing, when copying the clang types from those parsed by the DWARF parser into the expression AST, to fail -- for good reason. Now all types are created in the same list.
91557b0 Fixed a bug where the LLVM disassembler was ignoring the show_address parameter.
26be453 Add more comments on LLDBTestResult class.
e5748d8 Did a lot of code cleanup.
47c47c4 Rephrase the output message about session information; make it both "session logs".
55c1bfd When dumping the session log for a failed/errored test, also emit the command to invoke the test driver to rerun the very same test. Example output:
cf18faa Added a named container for the source QualType in the type copy routine to make type problems easier to debug.
e24f7cb Remove the @skip decorator for the whole class:
573335b We should make the class name of test cases which emphasize expression command be different than the class name which uses frame variable command.
05efcf78 Distinguish between the assert messages for runCmd and expect. The former now takes the form:
5ef1c4b Move the persistent_variables directory under expression_command directory.
b883d17 Add a test for expression parser crash which has been fixed.
4b1c625 Make the specification of relative directory more robust.
670c1f8 Bumped versions in Xcode projects to lldb-31 and debugserver-118.
5745283 Fixed an issue in the DWARF parser that was causing forward declarations to not get resolved.
2ecd040 Implement RegisterContext::WriteRegisterBytes in RegisterContextLLDB. I only did a tiny bit of testing; in the one case I tried changing the contents of a radar in the middle of a stack and it was still current in the live register context so it filtered down to frame 0 and was handed over to the live register set RegisterContext. I need to test a case where a register is saved on the stack in memory before I check this one off.
1da513b Refactor UnwindLLDB so it doesn't populate the entire stack unless the frame count is requested or each frame is individually requested.
d6ef16a Fix thinko in UnwindTable.cpp where it wouldn't provde a FuncUnwinders object if the eh_frame section was missing from an objfile. Worked fine on x86_64 but on i386 where eh_frame is unusual, that resulted in the arch default UnwindPlan being used all the time instead of picking up an assembly profile based unwindplan.
92027bf Add keyboard shortcuts:
f9be01f Minor comment fix.
1a6e92a Better wording of the help text for the '-f testclass.testmethod' option usage.
d529f6b Let's also emit the informational message for where to find the session logs for failed/errored tests at the start of the test run, in case the test run crashes for any reason. That way, it is easy to locate the session logs for accumulated failures/errors.
a3e6931 Skipped due to rdar://problem/8641483 ./dotest.py -v -t -w forward seg faults.
23cf0c7 Cleaned up the pseudo terminal code in ProcessGDBRemote as it was spawning a pseudo terminal even when the process being attached to.
6dff827 Added more logging so we see the register state when a function starts and ends, and also the disassembly for anything that is a client of ClangExpressionParser after it has been JIT compiled.
b29b8c6 Fixed an issue where if you try and run something in a TTY that isn't the same architecture as a default program, the attach architecture auto detection would change the architecture to the architecture of the darwin-debug (which was always x86_64) and hose up your debug session.
cc6f7cc Fixed some type parsing that was causing types to thing they were forward declarations when they should have been.
a224cd1 Change the test driver so that simply specifying '-f testclass.testmethod' means that we want to run just the instance of testclass-testmethod combination and nothing else.
1d1b39c Made variable resolution more robust by handling every external variable reference in the module, and returning a clean error (instead of letting LLVM issue a fatal error) if the variable could not be resolved.
d6d806c Fixed FileSpec's operator == to deal with equivalent paths such as "/tmp/a.c" and "/private/tmp/a.c". This was done by adding a "mutable bool m_is_resolved;" member to FileSpec and then modifying the equal operator to check if the filenames are equal, and if they are, then check the directories. If they are not equal, then both paths are checked to see if they have been resolved. If they have been resolved, we resolve the paths in temporary FileSpec objects and set each of the m_is_resolved bools to try (for lhs and rhs) if the paths match what is contained in the path. This allows us to do more intelligent compares without having to resolve all paths found in the debug info (which can quickly get costly if the files are on remote NFS mounts).
95e33b7 Modified the DWARF parser for both the single DWARF file and for the case where the DWARF is in the .o files so they can track down the actual type for a forward declaration. This was working before for just DWARF files, but not for DWARF in .o files where the actual definition was in another .o file.
e005f2c 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.
101530a Howard Hinnant gave us changes for lldb_private::SharingPtr that gives us the ability have a single allocation contain both the class and the ref count without having to do intrusive pointer type stuff. They will intermingle correctly with other shared pointers as well. In order to take advantage of this you need to create your pointer in your class with the make_shared function:
58a4034 Fixed a bug where variables in the source operands of store statements were not being marked for resolution.
51d6b1c Make the type of session log part of the filename itself. It allows for easier identification of the test failures/errors by human beings as well as automatic processings.
538eb82 Added copy constructors and assignment operators to all lldb::SB* classes so we don't end up with weak exports with some compilers.
91a1dab If debugserver is running on the local machine, pass it a pseudoterminal to pass to the inferior for the inferior's I/O (to allow direct writing, rather than passing all the I/O around via packets).
89e4bae Fix the infinite recursion crash reported by Antoine Missout:
ea9d426 Added the equivalent of gdb's "unwind-on-signal" to the expression command, and a parameter to control it in ClangUserExpression, and on down to ClangFunction.
e625092 Fix comments.
6ddae13 Don't need both LIBLLDB_LOG_DYNAMIC_LOADER and LIBLLDB_LOG_SHLIB. Go with the former.
088c03e Don't need both LIBLLDB_LOG_DYNAMIC_LOADER and LIBLLDB_LOG_SHLIB. Go with the former.
981e44c Don't need both LIBLLDB_LOG_DYNAMIC_LOADER and LIBLLDB_LOG_SHLIB. Go with the former.
d96b568 Add comment about iterating over possible architecture and compiler combinations.
7db314d Make lldb dump fullpath instead of just basename when printing out frame or thread descriptions. This allows for correctly finding and obeying the last filename-and-line marker from the debugger.
f773145 Fixed error handling when the utility functions that check pointer validity fail to parse. Now lldb does not crash in that case. Also added support for checking Objective-C class validity in the Version 1 runtime as well as Version 2 runtimes with varying levels of available debug support.
4f385f1 Handle stepping through ObjC vtable trampoline code.
4ba3999 Added a setting to "log timer" so you can see the incremental timings as well:
abab14b Added a top level Timer to the interpreter execute command. Also added an option to pass the depth to "log timer enable". That allows you to time just command execution with:
19e29a8 Added a top level Timer to the interpreter execute command. Also added an option to pass the depth to "log timer enable". That allows you to time just command execution with:
db60f8d Remove the @skip decorators for assertion aborts. Jim fixed them in r118255.
dc7422c Use the new native unwinder by default.
2eac2b9 Add a ObjC V1 runtime, and a generic AppleObjCRuntime plugin.
95fcc92 Add one @skip decorator for assertion abort:
56a814d Add two @skip decorators for assertion abort:
e9cab7a Revert last checkin to DisassemblerLLVM.cpp; that was some temporary debug printfs that got left behind by accident.
8132f2d Add #ifdef to easily switch between the current libunwind-remote based unwinder or the native unwinder (UnwindLLDB). I'll make the native unwinder the default once I check in with everyone tomorrow.
96829fb Revert last checking to ThreadGDBRemote.cpp; I accidentally checked that in along with some cleanup work with the native unwinder code.
8f0ad08 Revert last checking to CommandObjectDisassemble.cpp; that was some diagnostic test code I was using while debugging the native unwinder and didn't mean to check in.
a6b71de Built the native unwinder with all the warnings c++-4.2 could muster; fixed them. Added DISALLOW_COPY_AND_ASSIGN to classes that should not be bitwise copied. Added default initializers for member variables that weren't being initialized in the ctor. Fixed a few shadowed local variable mistakes.
12e4185 Removed the hardcoding of the system compiler to gcc 4.2
81ab615 Bumped version for lldb-29 and debugserver-116 in the Xcode projects.
0baa394 Added support for loading and unloading shared libraries. This was done by adding support into lldb_private::Process:
14a97ff Re-enabled LLDB's pointer checkers, and moved the implementation of the Objective-C object checkers into the Objective-C language runtime.
800d11d Handle the case where no eh_frame section is present.
29756d4 Factored the code that implements breakpoints on exceptions for different languages out of ThreadPlanCallFunction and put it into the appropriate language runtimes.
b1ba407 Fix an incorrect comment in main.c and TestConditionalBreak.py. It should be c's parent frame being a instead of the other way around.
2c8d159 Add a test for Python API SBValue.GetValueType() inside TestArrayTypes.py for a local variable and an argument variable.
e3bb7ec Fix comment about eValueTypeConstResult.
94fb543 Modified ThreadPlanCallFunction to perform the exception checks at the right time, and modified ClangFunction so that it doesn't misinterpret the stop as a timeout stop.
dd2bb2c Now that the test suite has very few expected failures remaining (2), it is a good idea to also dump the session information for expected failures in addition to failures and errors (tests with unexpected exceptions).
3a89ffe Really remove the @expectedFailure decorator this time.
b120412 Remove the @expectedFailure decorator. The bug rdar://problem/8508987 has been fixed.
9d2993d Fixed shared library unloads when the unloaded library doesn't come off the end of the list. We had an issue in the MacOSX dynamic loader where if we had shlibs: 1 - a.out 2 - a.dylib 3 - b.dylib
07f3d8d Modified the thread plan that calls functions to set breakpoints at the different locations where an exception could be thrown, so that exceptions thrown by expressions are properly caught.
ddeba74 Add more comment for dumpSessionInfo(self) method.
b51ee98 Fixed a bug where we left a definition hanging for a global variable that we had replaced with a reference to a slot in the input array.
9ac3a96 Fixed a bug that was confusing the code generator on i386 platforms, leading to crashes on simple expressions.
66a0353 Clean up the test case by removing the filtering code related to fixed radars. Also modify the:
51287a1 The remaining reference-related variable display failures have been fixed. Comment out the filtering code. The next check in will clean up the test case by wiping off the filtering related logic.
2e81020 Fixed a case where children of pointers or references that had had multiple children always incorrectly displayed the child at offset zero.
c93ecd4 Add a test case for a bug fixed:
5d53b62 Fix error message when attempting to generate invalid alias.
02c20f1 Fixed a missing newline when you type "apropos somethingthatdoesnotexist".
19edbc5 Remove the reference-related variable displays that now pass from the 'notnow' set. The failures that remain are:
90b4225 Fix problem where "process detach" was not working properly. The ptrace thread update that was replying to the SIGSTOP was also causing the process to not really be sigstop'd any more so then the call to ptrace detach was failing, and when debugserver exited the attached process was being killed. Now the ptrace thread update does not disturb the sigstop state of the thread, so the detach works properly.
f3ffc34 Remove 8 @expectedFailure decorators, the following bug has been fixed:
8ff5d55 Fixed cases where we were translating "long long" types to use the "long" types when they are the same size. The new code will use the correct type now when converting DWARF built-in types into clang types.
2dfe4c6 Fixed the default file and line breakpoints to include inlined breakpoints.
4a2eb2e Fixed our overly verbose stop reasons which by default included the thread name and thread queue. Users can modify the thread-format strings to add these back if needed.
a564ec6 Print better error messages when memory reads fail when displaying variable values.
a074482 Improved logging and cleaned up a redundant return statement. Now when ClangExpressionDeclMap returns a variable for a name, it pretty-prints that variable to the log instead of printing a (fairly useless) NamedDecl pointer.
9f018b0 Add comment on test class failing for clang as well as llvm-gcc.
2986764 Replace the two call sites of inspect.getsource(obj) with a utility function getsource_if_available(obj) which also handles the exception if it occurs.
9bcf31e Fixed globals not showing up for any but the first compile unit due to a mismatch: I was using the compile unit user ID (the compile unit offset in the DWARF) as the compile unit index.
7617c29 Print notes for expressions as well as errors and warnings.
d1d9351 Add keyboard shortcuts:
84e01f8 Change the README to reflect the new the screen shot file name lldb-gud-window.png.
12fc1dc Python API changes: SBValue.IsPtrType() -> SBValue.IsPointerType(). SBFrame print representation: idx: 0 -> #0
8936359 Fixed StackFrame::GetVariableList to add global variables to the list of found variables if they have not yet been added.
c9e821e Make sure darwin-debug gets installed in /Developer/usr/bin instead of /usr/local/bin.
03f4e93 Bumped lldb Xcode project version to 28 for lldb-28.
135adf2 Fixed an include so case sensitive builders can build.
b0f8e23 Bumped version in Xcode project to lldb-27, and debugserver to debugserver-115.
49ce682 Cleaned up the API logging a lot more to reduce redundant information and keep the file size a bit smaller.
1b28441 Fixed the copy constructor for SBThread.
87658e8 Compress screenshot.
df45216 Submit the screen capture as a followup of r117752.
a66ba46 Improved API logging.
4ee40ac Added a hack that allows expressions to ignore Objective-C member accessibility restrictions. Ultimately Clang should have a flag that ignores accessibility for Objective-C like it has one for C++.
af93547 Using proper Objective-C types doesn't seem to make the sky fall.
810f7e5 Initial port of lldb debugging mode to run under Emacs's Grand Unified Debugger (gud.el). The gud.el is modified from 22.3.1 version to add lldb stuffs, the gud-diffs.txt is the diff file.
68f7290 Delete the directory, will try to resubmit later.
9a459b3 Initial port of lldb debugging mode to run under Emacs's Grand Unified Debugger (gud.el). The gud.el is modified from 22.3.1 version to add lldb stuffs, the gud-diffs.txt is the diff file.
41fae81 Add some comment about the default session dir name which is a timestamp.
63c2cba The informational message for where to find the session logs for failed/errored tests should be near the test summary message, instead of way up in the beginning.
cff44fd These two casts are up casts, no need to use dynamic_cast.
6a9e5c2 Update arguments & help information for "log disable" command.
7abdb24 Missed a file in my last commit.
926060e Add the ability to disable individual log categories, rather than just the entire log channel.
a5dc3a7 Overloading is not broken any more. No need for an #ifndef.
bcb3dd6 Remove the @expectedFailure as the following bug is fixed with newer clang bits with lldb r117700:
b4c0f02 ClangUserExpression ctor should not crash if given a null expr_prefix char*.
61c1b8b The r117616 check in broken these two test cases:
8950c9a Updated LLVM to latest version as of 10/28 at 7pm, and made minor integration fixes.
95adafc The r117641 check in removed the SBValue's print description of type and size. Change the test case to not check it for an SBVariable's print description.
3f5ee7f Modified the lldb_private::TypeList to use a std::multimap for quicker lookup by type ID (the most common type of type lookup).
77e9394 Added a user-settable variable, 'target.expr-prefix', which holds the name of a file whose contents are prefixed to each expression. For example, if the file ~/lldb.prefix.header contains:
e6866a3 Add alias information, including aliased command options & arguments, to help text for alias commands.
0831ebc Comment out uninmplemented command option (-f) for disassemble command.
5790e06 Remove references to particular Python version (use the system default version); change include statements to use Python.h in the Python framework on Mac OS X systems; leave it using regular Python.h on other systems.
60881f6 Add comment on passing the assert message to self.runCmd().
ad5b61b Explicatory comment for folks that may not be familiar with the ownership relationships involving Diagnostic.
05dd893 If TestBase.expect() is passed an assert message, pass it along when delegating to TestBase.runCmd() to execute the debugger command. This will result in a more semantic assert message than just the command failed message like before:
839fde4 Logging fixes. Added a simple class to handle logging for type importing, making errors much easier to diagnose. Also removed some Objective-C related logging.
a62ad7c Check in an initial implementation of the "breakpoint clear" command, whose purpose is clear the breakpoint associated with the (filename, line_number) combo when an arrow is pointing to a source position using Emacs Grand Unified Debugger library to interact with lldb.
76bd010 Fix the test driver as part of the fix for http://llvm.org/bugs/show_bug.cgi?id=8493 File name "2010-10-19-14:10:49.059609" is non-portable.
cf2f305 Add warning if no actual locations were resolved when attempting to set a breakpoint.
aeb7cce Fix http://llvm.org/bugs/show_bug.cgi?id=8493 File name "2010-10-19-14:10:49.059609" is non-portable.
9bd7e35 Fixed the "frame variable -G NAME" that would print global variables by name. It was accidentally getting all the globals for the compile unit that contained the global variable named NAME.
7ea3523 Replace unnecessary dynamic_cast with static_cast.
2763c64 Make SBFrame::GetDescription a little more descriptive.
7de24cc Fix bugs attempting to write to API log after it has been disabled.
f81b4c5 Flush the prompts immediately in the breakpoint command input readers, to make sure they come out at the correct times.
6bc44a4 Don't include the ":" character when building the selector identifiers when making objective C classes from the DWARF.
f3d0b0c Updated the lldb_private::Flags class to have better method names and made all of the calls inlined in the header file for better performance.
bf6e210 After a recent fix to not set the default architecture to "x86_64", the string value for the default arch was coming out as a value that shouldn't be user visible. Now we don't show any value when it isn't set.
68d4753 Removed an inappropriate function lookup path.
61ba7ec 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...
0561f3d Fixed vAttachWait by fixing a missed "else if".
d8ac2a1 Remove inappropriate if-clause in regex name resolution that was causing modules that haven't already been parsed from being searched.
4e12194 Add an unwind log Printf to note when an eh_frame section is loaded/parsed. Should add timers to this eventually.
2e2ba54 Don't indent log lines by frame # spaces if the frame # exceeds 100 - the indentation gets to be a problem if you have a unbounded stack walk.
7826c88 First pass at adding logging capabilities for the API functions. At the moment it logs the function calls, their arguments and the return values. This is not complete or polished, but I am committing it now, at the request of someone who really wants to use it, even though it's not really done. It currently does not attempt to log all the functions, just the most important ones. I will be making further adjustments to the API logging code over the next few days/weeks. (Suggestions for improvements are welcome).
a2c269c Get a disassembler based on the correct architecture for assembly prologue profiling.
c2c6f77 Fixed a problem where function calls on i386 weren't being generated correctly.
988ddbc The call function thread plan should allow internal breakpoints to continue on. Also made stopping in mid-expression evaluation when we hit a breakpoint/signal work.
17a661c Add an extra SPC character after '.' for the 'frame variable' help text.
9f8463d Add comment explaining the options used to invoke the test driver.
4453f0a A simple config to test both x86_64 and i386 architectures.
fe97289 Don't set the default architecture to x86_64. Leave it NULL so that it isn't set to anything and so that any single architecture binary will adopt that architecture instead of posting an error stating the binary doesn't contain "x86_64".
ad5fd40 Only prints out the stop reason if it is not invalid.
2c9966b Also prints out the stop reason string for lldbutil.PrintStackTrace(thread).
a0be7f9 Skip this test module for the time being until we get a newer clang on lldb tot.
8280cbe Check in the native lldb unwinder.
0432506 Fixes to Objective-C built-in type handling.
3089237 Added a hack so that "unichar" is resolved to "unsigned short." As discussed in the comments, this is pending a better solution to the problem of types not in the debug information but readily available through headers.
e67bf03 Fixed value objects so that they return an informative message when they have no description.
11e9585 If we hit a thread specific breakpoint for another thread, don't report the Exception as the stop reason, you have to report no stop reason.
550f276 Added a temporary hack to allow casting of Objective-C method results to int. This will only last until we get accurate type information for Objective-C methods or some way of making their types inferred by the parser.
607b7a1 Add more docstring for the lldbtest.TestBase class.
3c8b629 Just use 'test harness', not 'test harness runtime'.
168a61a Comment heading changes.
f8fa6ff Fix the default prompt to have a space.
960e5b0 Add text about test class cleanup.
5492fc7 Comment out the debug statement for printing the SBBreakpoint object.
5c3e598 The test should remove 'output.txt' if it exists before launching the inferior process which is supposed to create the file.
9656ab2 Add some more usage text.
e3663e8 Changed "run" to alias "process launch --". Added "po" alias for "expression -o --"
0601a29 Add test case for using SBBreakpointLocation to set break condition.
a04dc9a Fix misnamed test method names.
713308e Fixed a error formatting output issue when dumping variables where the error had no space before it and was missing a newline.
e374083 Add and SB API to set breakpoint conditions.
03c997b Fixed IRForTarget to not recognize $__lldb variables as persistent variables. These are special markers used by LLDB.
1aabaac Mark these test methods to be eligible for running only under the 'darwin' platform.
2cbaa46 Add more information.
66d2c2d Rewording of output message.
125fc2b Add an option '-s session-dir-name' to overwrite the default timestamp-named directory used to dump the session info for test failures/errors.
fdde5f2 Get rid of the microsecond field in the timestamp directory name used to dump the session information files to. This makes the directory name less intimidating. Currently, the directory only gets created if there are failures/errors while running the test suite.
6ad7e5e Add an example of option combination for running a single test method to the help text.
c3445a3 Initial check in of best-practice documentation for building test cases.
3d0e2c2 Fixed a crasher that could happen if a FileSpec had a filename only, or vice versa.
c958be4 Add more bug info.
8d522c2 Fixed a typo in the comment.
a83ea88 Fixed a crasher. The cmd_file needs to be resolved before reading lines from it.
537a7a8 Fixed an issue where we were resolving paths when we should have been.
72bc92e Remove the two @expectedFailure decorators as the bug has been fixed on tot.
f6bdb19 Make the breakpoint condition test more robust with regard to checking the correct parent call frame information. And comment out the check for stop reason for the time being. The stop reason disappeared from the "thread backtrace" output for breakpoint stop with condition.
73a8710 Clean up the teardown logic to make it more robust and to record the additions and invocations of them into session object.
a720ff4 Fix wrong test logic with regard to hit count and resolved stat
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment