aboutsummaryrefslogtreecommitdiffstats
path: root/ddms/libs
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Make InstrumentationResultParser#handleTestRunFailure public."Brett Chabot2012-04-031-2/+3
|\
| * Make InstrumentationResultParser#handleTestRunFailure public.Brett Chabot2012-04-021-2/+3
| | | | | | | | | | | | Done to allow reuse. Change-Id: I7a0651bb66e51997b08af7f46b8db4da7c9a0fbf
* | Switch libraries from Eclipse 3.4 to Eclipse 3.6.2Tor Norbye2012-04-023-7/+7
|/ | | | | | | | | | | This updates the org.eclipse.core.command, org.eclipse.jface and org.eclipse.equinox libraries from Eclipse 3.4 to Eclipse 3.6.2. It also updates SWT from 3.4 to 3.6.2 (and this drops the Carbon support from the SwtMenuBar library since SWT 3.5 switched to Cocoa by default.) Change-Id: I7e8a6e3b8cb473f90eca3b90e3f3dc5fa5099b71
* logcat: support new format for "logcat -v long"Siva Velusamy2012-03-064-19/+42
| | | | | | | | The thread id's output in "logcat -v long" used to be encoded in hex, but not anymore. This fixes the logcat parser to accomodate both the old and the new formats. Change-Id: I0871a68f2f82c5e4660c404ec8970063d7b68a88
* Usec a shorter timeout for Device#getPropertySync.Brett Chabot2012-02-271-1/+2
| | | | Change-Id: Ica768daddb71664edc32e65cca6a42beff19ff1d
* ddms: fix deadlockSiva Velusamy2012-02-062-48/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A deadlock can occur between: - a thread calling handleChunk() resulting in Device.getClients() - a thread calling processIncomingJDWPData() resulting in dropClient() For a full trace resulting in deadlock, see attachments in bug 24926. This patch fixes the deadlock by moving the entire synchronization into MonitorThread. Originally, processIncomingJdwpData, performs locking as follows: synchronized(monitorThread) { synchronized(device.getClientList() { synchronized(monitorThread.mClientList) { synchronized(device.getClientList() { This patch changes the structure of locking to look like: synchronized(device.getClientList()) { } synchronized(monitorThread) { synchronized(monitorThread.mClientList) { synchronized(device.getClientList() { As a result, device.getClientList() is always locked *after* monitorThread.mClientList. This matches the order of locking performed with handleChunk(), and should solve this deadlock scenario. Change-Id: Ie7a9efa897568af4450f0e23b2175ee66e127d7d
* logcat: Fix deadlockSiva Velusamy2012-02-061-3/+29
| | | | | | | | | | | | | | | | | | | | | | LogCatReceiverFactory has a deadlock scenario that occurs like this: 1. When a device is disconnected, removeReceiverFor() is called from a DDMS device monitor thread. This thread holds certain DDMS internal locks. removeReceiverFor() is synchronized on LogCatReceiverFactory. So we have: DDMS thread - holds device lock removeReceiverFor - waiting to obtain lock for "this" object. 2. At the same time, a separate thread could call newReceiver. As part of creating a new receiver, we add a device change listener. So we have: newReceiver - holds "this" object. create device change listener - waiting for device lock. As a result, the system deadlocks. This patch fixes this condition by calling the removeReceiverFor from a non DDMS thread since we don't really care about DDMS locks here. Change-Id: Ic4ef4589acdcd7980864da23cde760debc4cfbb8
* Merge "Pause network panel by default, handle devices."Jeff Sharkey2012-02-011-65/+120
|\
| * Pause network panel by default, handle devices.Jeff Sharkey2012-02-011-65/+120
| | | | | | | | | | | | | | | | | | Always start with network panel paused, letting user control start and stop explicitly. Also pause when client is changed. Handle devices without xt_qtaguid module by showing error dialog. Change-Id: I4f6c81d8c52729c155b7f4a477bcec1857681da8
* | Merge "Show detailed network statistics from xt_qtaguid."Jeff Sharkey2012-02-011-0/+1053
|\ \ | |/
| * Show detailed network statistics from xt_qtaguid.Jeff Sharkey2012-02-011-0/+1053
| | | | | | | | | | | | | | | | | | | | | | | | | | New panel that shows live network statistics by reading xt_qtaguid proc file across adb. Shows all tags for selected UID on a chart with 30 seconds of history. Each tag is presented as unique series, with the overall usage in grey. Table below the chart shows running totals of known tags. Includes options to pause, reset, and change polling frequency. Bug: 5194997 Change-Id: I72d43ab51aaf93ecfd6d45fcd452c7230cdee5b7
* | ddms: Allow port forwarding to Unix Domain SocketsSiva Velusamy2012-01-313-14/+102
|/ | | | | | | | | adb allows forwarding to not just TCP ports, but also Unix Domain Sockets (UDS) addressed by an abstract name or file system path. This patch enables support for port forwarding to UDS in the IDevice interface. Change-Id: I23fa667b24a2b469acc04cef26304f19179dc483
* Improved ADB logging on failure to help pinpoint issuesTor Norbye2012-01-121-5/+18
| | | | Change-Id: Ic0bee3baf2c766b9c859ad6d93505bd1cfce0776
* Fix locale handling of uppercase/lowercaseTor Norbye2012-01-065-56/+66
| | | | | | | | | | | | | | | | | This changeset fixes issue 23747: i and İ character problem in turkish operating Systems... and probably many other bugs in the Turkish locale. Basically, we had a lot of String.toLowerCase() and String.toUpperCase() calls. This performs locale sensitive conversions, which in many cases is NOT what we want; for "machine readable" conversions we should be using Locale.US which performs no special cases. For more, see http://developer.android.com/reference/java/util/Locale.html#default_locale Change-Id: I996b0e70fb377e8dae484c5811deb8bc9afb684c
* Add @NonNull annotation and configure Eclipse settingsTor Norbye2011-12-222-2/+26
| | | | | | | | | | | | | | This changeset adds a new @NonNull annotation, to match our existing @Nullable annotation, and it adds configuration settings for Eclipse 3.8 / Eclipse 4.2 which configures the new null analysis there to use our own annotations. Note that the annotations only have source retention so there is no extra size or class-loading overhead. (To use findbugs you'll need to temporarily change retention to class-level.) In upcoming CL's I'll use these annotations to clarify the Lint API and other APIs. Change-Id: I99096d8b8a7e25ef002624d592da7700195a5872
* Update SDK codebase to JDK 6Tor Norbye2011-12-2164-145/+542
| | | | | | | | | | | | | | | | | | | | | This changeset makes the SDK codebase compile with source=1.6 (which means it also requires JDK 6). This means that methods implementing an interface requires @Override's. It also means we can start using APIs like the ArrayDeque class and methods like String#isEmpty(). This changeset looks big but the change is trivial: it's basically adding @Override in all the places that need it, along with some other automatic Eclipse cleanup in certain files (such as reordering imports where they were incorrectly ordered (because older versions of Eclipse didn't always handle inner classes right)), as well as cleaning up trailing whitespace and removing some $NON-NLS-1$ markers on lines where there aren't any string literals anymore. This changeset also sets the source and target JDK level to 6 in the Eclipse compiler .settings file, and synchronizes this file to all the other Eclipse SDK projects. Change-Id: I6a9585aa44c3dee9a5c00739ab22fbdbcb9f8275
* ddms: display manufacturer & model for devices.Siva Velusamy2011-12-201-1/+51
| | | | | | | | DDMS displays only the serial number for connected devices. This patch appends the manufacturer & model name to the serial number. Change-Id: I90400365fe984b0b0a198e3c21aaf25eb05aa930
* logcat: Improve auto scroll lock behaviorSiva Velusamy2011-12-143-46/+79
| | | | | | | | | | | | | | | | Setting up scroll lock automatically is broken due to the highly platform dependent nature of the scroll bar events. This patch improves the current situation significantly, but may not be the last word on this subject. This patch does the following: 1. Sets up auto scroll lock on Windows and Linux. 2. Removes auto scroll locking on Mac. Users have to manually press the Pause Logcat button. 3. Renames the "Scroll to latest" button to "Pause Logcat" to more accurately reflect what is happening. Change-Id: I1ce03371d7ac7aeaea218aa3c5c426c69c56a527
* Merge "Use a custom timeout for IDevice.getBatteryLevel."Brett Chabot2011-12-131-1/+2
|\
| * Use a custom timeout for IDevice.getBatteryLevel.Brett Chabot2011-12-091-1/+2
| | | | | | | | | | | | Bug 5697543 Change-Id: I6ce33dd2c8416f5ccfb55b26120edb6a0acf5ad7
* | logcat: when copying items, index into filtered list.Siva Velusamy2011-12-131-7/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | The previous commit introduced a bug: The SWT table model is a list of logcat messages before any filters are applied. But the user sees the filtered messages. So when user selects items in the table, the selection index will not match the index in the input model. This patch applies all current filters to the input model and then indexes this filtered list to get the same items that the user has selected in the view. Change-Id: If955bd5c22e1c587bcf5fe32092f513d53c0d8ef
* | logcat: fix npe & clear log in filtered viewSiva Velusamy2011-12-121-2/+17
|/ | | | | | | | | | | | | 1. Fix NPE when selecting all items: Issue is that in case of a table with SWT.VIRTUAL, tableItem.getData() could return NULL if the item hasn't been shown. So we have to rely on the original model to retrieve the items. 2. When viewing items after applying a filter, clear log will clear the full log but not the filtered view. To clear the filtered view, the SWT ViewerFilters have to be reapplied. Change-Id: I6c66be4e0e8abb6db114588f382bcd3b9fe8ee0f
* logcat: bring up edit filter dialog on double clickSiva Velusamy2011-11-281-0/+5
| | | | | | | When a saved filter is double clicked, bring up the 'Edit Filter' dialog for the selected filter. Change-Id: Idd6766ba95e0d2f228c664ffccf8dbfb5b93b0b8
* logcat: fix tooltip shift distanceSiva Velusamy2011-11-281-0/+11
| | | | | | | Fix for http://code.google.com/p/android/issues/detail?id=22111 which is OS X Lion specific. This fix hasn't actually been tested on OS X Lion! Change-Id: Ifb4397e1482ebacc84cd90e83bb6837b883fbd08
* Merge "Add IDevice.getBatteryLevel()"Brett Chabot2011-11-092-0/+97
|\
| * Add IDevice.getBatteryLevel()Brett Chabot2011-11-042-0/+97
| | | | | | | | Change-Id: I1db67422e2f39206383a3bd760769b2ebbf46ed6
* | Merge "nativeheap: Do not clean up display if a client is killed."Siva Velusamy2011-11-061-17/+21
|\ \ | |/ |/|
| * nativeheap: Do not clean up display if a client is killed.Siva Velusamy2011-11-061-17/+21
| | | | | | | | | | | | | | | | | | Fix for Issue #21554. When a client process dies, the native heap view is immediately cleared. This makes it impossible to view the native heap snapshots for processes that are being killed due to OOM errors. Change-Id: I3b6c868832c6b48e591d31d1643db20887ff8c13
* | Merge "fix for leaky fd, amke sure we close syncservice."Tsu Chiang Chuang2011-11-031-3/+18
|\ \ | |/ |/|
| * fix for leaky fd, amke sure we close syncservice.Tsu Chiang Chuang2011-11-031-3/+18
| | | | | | | | Change-Id: Id639890c3e962dd5993281a0cdd911031aaf7304
* | ddms-heap: Show atleast 1 row.Siva Velusamy2011-11-021-45/+57
| | | | | | | | | | | | | | | | One some platforms, the table doesn't show any rows at all, and there is no way to resize the table. This patch makes sure that there is one row that is always displayed. Change-Id: Ib93839c610926a7f8629436d26bb7ad9485431af
* | logcat: update scroll behavior when buffer is full.Siva Velusamy2011-11-022-6/+37
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | When the logcat buffer is full, any received message will push out an old message. As a result, the messages keep moving up the table, which is annoying if you want to view a particular message. Ideally, we'd keep the view constant, but only the scrollbar moves up to indicate that we have received new messages. But this doesn't work in an SWT table. One solution would be to refresh the table and then scroll it to remain in the same place. This causes a flicker and is annoying. This patch stops refreshing the table when the user is viewing an older item in the table, and starts auto refresh if the scroll bar is again brought to the bottom. In addition it provides a toolbar button that reflects the state of scrolling, similar to a scroll lock checkbox. The one downside to this is that since the scrollbar does not move, the user does not have clue if new messages are being received. The new messages will be noticed only if the user unselects the scroll lock button, or manually moves the scrollbar down. This is a fix for Issue #20805. Change-Id: I12108789265fec38287a466d21505db85892594d
* Merge "Code cleanup: make sure FileInputStreams are closed."Raphael2011-10-182-8/+28
|\
| * Code cleanup: make sure FileInputStreams are closed.Raphael2011-10-132-8/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various places of the code construct a new FileInputStream on the fly and give it to another method. One many occasions the stream is never properly closed, which can lock files on Windows. 2 specific cases: - Properties.load() doesn't seem to close its input (when looking at the source bundled with the JRE). - The doc of InputSource (used by various XML parsers like the pull parser) indicates the caller should in general not close the stream and the parser itself should do it. Change-Id: I622b54a22f97ed2c9c8fdc56ccde331207d9d212
* | Merge "Make InstrumentationResultParser less chatty on unexpected output."Brett Chabot2011-10-172-2/+23
|\ \ | |/ |/|
| * Make InstrumentationResultParser less chatty on unexpected output.Brett Chabot2011-10-142-2/+23
| | | | | | | | | | | | Bug 5459282 Change-Id: Ib3069b628f476cf73649802f51b7bb22b6ceebaa
* | Logcat autoscroll behavior update.Siva Velusamy2011-10-121-28/+41
| | | | | | | | | | | | | | | | | | | | | | | | Rather than checking the position of the thumb every time entries are added, we listen to the scroll bar being moved up or down by the user. In addition, also update the scrolling behavior whenever entries in the table are selected. Auto scrolling will stop if anything but the last entry is selected. Change-Id: I7b32e9c42bc8e2ad01171b61a5a9ef09d8d0a7b1
* | Remove non-actionable log statement.Siva Velusamy2011-10-101-4/+0
| | | | | | | | Change-Id: I18064d048603c61a5f7d046bbb4cdb39181159de
* | Fix NPE when getCurrentDevice() == null.Siva Velusamy2011-10-101-1/+13
| | | | | | | | Change-Id: I0f9eaf599b5ab22487408ea74d597ea61a22793f
* | Add a new implementation for symbol resolution.Siva Velusamy2011-10-103-13/+436
| | | | | | | | | | | | | | | | | | | | The old implementation can still be used by setting the env variable ANDROID_DDMS_OLD_SYMRESOLVER. With the new one, all errors are collected, and displayed in the UI at the end, grouping similar errors together. Change-Id: Ibf2fa2122109b2eaf37579d65a3d0b18f475b436
* | Add a whitespace character when scanning across tokens.Siva Velusamy2011-10-091-1/+6
|/ | | | Change-Id: I6473c1e987c37fb69f808c26e2a7e0f451ab1d34
* Minor refactor: keep sizes of snapshot ArrayList's in sync.Siva Velusamy2011-10-061-8/+12
| | | | Change-Id: I30aef911df1146ff9a64c4d08c4371c2937d4e94
* Add support for importing saved heap data.Siva Velusamy2011-10-064-33/+458
| | | | Change-Id: I8552af1754f5093dcdb156f7f81e3beef776835a
* Model diff snapshot as a subtype of a regular snapshot.Siva Velusamy2011-10-064-27/+94
| | | | Change-Id: Ic701255c586530214b51a1553b66aa60c6c7b538
* Merge "Create FileListingService#getChildrenSync"Brett Chabot2011-09-291-10/+40
|\
| * Create FileListingService#getChildrenSyncBrett Chabot2011-09-291-10/+40
| | | | | | | | | | | | | | | | | | Useful for cases where callers want to be informed of adb communication errors when retrieving child files. Bug 5392097 Change-Id: I82087d24d08f4e1b2fcda67156835367dc1bb824
* | Provide a way to show/hide the filters column.Siva Velusamy2011-09-292-8/+40
| | | | | | | | Change-Id: I7c94daa006987a0983cdb3cee02a35f6e678d86e
* | Use a text box instead of a browser in tooltip area.Siva Velusamy2011-09-291-10/+4
| | | | | | | | Change-Id: Ica610ef4cefffaef3b6404a425c8b4551e741676
* | Display tooltips only for long messages.Siva Velusamy2011-09-292-2/+36
| | | | | | | | | | | | | | | | | | Currently, the tooltips are displayed for all logcat messages. This patch makes them show up only if the logcat messages are longer than the width of the column in which they are displayed, i.e., tooltips will be displayed only for those messages that could be clipped. Change-Id: Ib5bbce7d055656d2cc8063efdf5fed5910b24ad0
* | Check for scrolling before refreshing the table.Siva Velusamy2011-09-281-1/+4
|/ | | | Change-Id: Id65b11216a8240e3297072f0af094d69d924a8b3