Commit Graph

36 Commits

Author SHA1 Message Date
turnidge@google.com b640712e6b Handle vmservice messages while at breakpoint.
Allow rudimentary inspection of breakpoints from vmservice.

R=hausner@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org//113513004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31233 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 17:45:17 +00:00
hausner@google.com 55c283a672 Transmit breakpoint id on paused event
Breakpoint callback get an additional parameter to receive the id of the breakpoint that was hit, or 0 if the debugger pauses due to stepping.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//110913002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31029 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-10 17:41:05 +00:00
hausner@google.com e5cd233fd9 Fix json message in debugger wire protocol
Removed faulty comma in message. This hopefully solves issue 13792.

R=devoncarew@google.com

Review URL: https://codereview.chromium.org//59883019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30311 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-15 19:14:47 +00:00
hausner@google.com 0673063f57 Add closure object type to debugger wire protocol
R=devoncarew@google.com

Review URL: https://codereview.chromium.org//61153006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30289 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-14 19:42:14 +00:00
hausner@google.com 6a0fb0d924 Handle recursive list structures in debugger
Issue 14108

Review URL: https://codereview.chromium.org//27397002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28677 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-15 19:58:10 +00:00
jacobr@google.com d9f7cc5099 Add "function" as an argument to Dart_ActivationFrameInfo
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//23609032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27440 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-12 17:45:42 +00:00
hausner@google.com f82de66060 Evaluation of expression in context of library top-level
Third and final part of expression evaluation in the context
of an (object|class|library).

R=iposva@google.com

Review URL: https://codereview.chromium.org//23514020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26898 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-29 23:24:23 +00:00
hausner@google.com a105ba48fc JSON string decoding for VM debugger
The VM must properly decode JSON strings it receives.

R=regis@google.com

Review URL: https://codereview.chromium.org//23439002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26668 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 20:59:16 +00:00
hausner@google.com 2642b1e522 Evaluate expression in the context of a class
Allows debugger to evaluate an expression in the context of a
static method of a class.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//23102019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26617 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-23 22:42:41 +00:00
jacobr@google.com 605b33c1bc fix cpp11 compile errors
R=asiva@google.com

Review URL: https://codereview.chromium.org//23072026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26387 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-20 20:24:11 +00:00
hausner@google.com d62ea57f8e Evaluate expression in context of an object
This is the core functionality needed for the debugger.

Review URL: https://codereview.chromium.org//23067006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26328 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-19 22:17:09 +00:00
hausner@google.com c88a53579a Don't use statically declared Mutex in debugger
Hopefully eliminates the "resource busy" errors we occasionally
see on MacOS (issue 10488).

I ran the debugger test 10000 times in a loop on my machine and
never ran into the assert. Let's hope the build bot is happy too.

R=asiva@google.com

Review URL: https://codereview.chromium.org//15861016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23178 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-24 20:35:03 +00:00
smok@google.com ebbc2020a2 Put everything in runtime/bin into '::dart::bin' namespace.
Review URL: https://codereview.chromium.org//14341015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22032 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-25 14:22:30 +00:00
hausner@google.com 72a4fed8e9 Implement list isolates command
New Debugger wire protocol command to list all isolates in a vm.

Review URL: https://codereview.chromium.org//14381005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21831 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-22 18:43:03 +00:00
iposva@google.com 539588333e - Reduce warnings about project settings in Xcode 4.
- Address compilation warnings found by clang.

Review URL: https://codereview.chromium.org//14084006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21786 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-22 05:31:03 +00:00
hausner@google.com e340b4d174 Debugger wire protocol changes
- Add 'number' value type for transmitting values of type num
- Eliminate 'integer' value types (subsumed in number values)
- Eliminate url and line number fields in breakpointResolved
  events

Review URL: https://codereview.chromium.org//14201004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21745 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-19 15:20:43 +00:00
hausner@google.com df5c543b6f Add library id, location info to breakpointResolved event
Review URL: https://codereview.chromium.org//13940008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21592 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-16 23:24:21 +00:00
hausner@google.com 89949d455b Deprecate old debugger breakpoint handler
- Add new breakpoint handler callback that does not take a
  stack trace
- Remove deprecated handler from debugger core
- Adjust tests
- Old breakpoint handler support remain in code until Dartium
  switches to new handler.

Review URL: https://codereview.chromium.org//14298002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21569 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-16 19:42:39 +00:00
hausner@google.com 84c1529de4 Fix wire json breakage
Review URL: https://codereview.chromium.org//14217006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21395 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 22:04:26 +00:00
hausner@google.com 268bdbc85f More cleanups in debugger API and wire protocol
Review URL: https://codereview.chromium.org//13975018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21392 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 21:49:24 +00:00
hausner@google.com cadaedbcde Debugger wire protocol cleanups
- Rename id->isolateId in paused events
- Eliminate stack trace object in paused events
- Adapt ddbg.dart tool
Review URL: https://codereview.chromium.org//14105003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21241 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 23:37:21 +00:00
hausner@google.com 9b3a1bd078 More debugger fixing in json objects
Need a better test. The current basic_debugger_test hangs due to
the bug. Will look at that in a separate cl.
Review URL: https://codereview.chromium.org//13800014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21109 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 20:00:54 +00:00
hausner@google.com 0257112f6b Fix editor build
Fix json syntax from previous change.
Review URL: https://codereview.chromium.org//13801017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21100 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 18:49:28 +00:00
hausner@google.com 1a4d308dea Add library id to code location object
Add libraryId field to the JSON Location object in the debugger
wire protocol.
Review URL: https://codereview.chromium.org//13771013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21098 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 18:31:56 +00:00
hausner@google.com ee69789e07 Add line table command to debugger
New command returns token information of a script. This will enable
the editor/debugger to translate token offsets to line numbers.
Review URL: https://codereview.chromium.org//13533016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21009 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 23:45:14 +00:00
hausner@google.com b0b38313ec Add text location in debugger event
- Adding token number in text location data. Line number will be
  removed when the editor knows how to convert a token number to its
  line number.
- "location" field in stack frames is now optional. If it is not present, there
  is no corresponding textual location for the code location.
- Add location info of "paused" and "interrupted" events.
  Stack trace will go away in these events.
Review URL: https://codereview.chromium.org//13144018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20816 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 20:41:29 +00:00
hausner@google.com 93d190dcbb More length restrictions in debugger protocol
Restrict the length of the textual representation of variable values that are sent over the debugger wire protocol. The full value can still be retrieved explicitly by the debugger client.
 
Review URL: https://codereview.chromium.org//12040053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17517 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-24 00:53:42 +00:00
hausner@google.com 74b36381d8 Limit textual representation of arrays in debugger
The debugger wire protocol choked when large arrays were present, because it tried to send the entire array as textual value. This change limits the size of the textual representation to about 256 characters. If elements are dropped, they are printed as …

 
Review URL: https://codereview.chromium.org//12033039

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17486 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-23 18:41:00 +00:00
devoncarew@google.com 7695213dcf Fix an issue with newlines and exception text in the debugger wire protocol.
Review URL: https://codereview.chromium.org//11645046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16444 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 17:27:23 +00:00
asiva@google.com ebbb7c4134 - Represent strings internally in UTF-16 format, this makes it
compatible with webkit and will allow for easy externalization of
  strings. One byte strings are retained for pure ASCII strings.
  (The language specification was changed recently to reflect this as
   follows "A string is a sequence of UTF-16 code units").
- Remove four byte string class and all references to it.
- Rename some of the string functions in Dart API to make them
  consistent and better describe the underlying functionality
  Dart_NewString => Dart_NewStringFromCString
  Dart_NewString8 => Dart_NewStringFromUTF8
  Dart_NewString16 => Dart_NewStringFromUTF16
  Dart_NewString32 => Dart_NewStringFromUTF32
  Dart_NewExternalString8 => Dart_NewExternalUTF8String
  Dart_NewExternalString16 => Dart_NewExternalUTF16String
  Dart_NewExternalString32 => Dart_NewExternalUTF32String
  Dart_StringGet8 => Dart_StringToUTF8
  Dart_StringGet16 => Dart_StringToUTF16
  Dart_StringToCString => Dart_StringToCString
  Dart_IsString8 => Removed
  Dart_IsString16 -> Removed
  Dart_StringToBytes -> Removed
  Dart_StringGet32 -> Removed
Review URL: https://codereview.chromium.org//11318018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14357 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-31 17:56:46 +00:00
asiva@google.com f8548e7142 1. Add isolate id parameter to all the debugger commands in the debugger wire protocol so that the commands are directed to the appropriate isolate.
2. Changed ddbg to pass the isolate ID in the debugger wire message.

The Dart debugger protocol document has been changed to reflect this.
Review URL: https://codereview.chromium.org//11094017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13691 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 18:22:54 +00:00
asiva@google.com b99cf58b52 Fix race condition when posting debugger messages to the message queue
(An isolate could be shutting down while a message arrives for the isolate).
Review URL: https://codereview.chromium.org//11144027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13669 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-15 21:28:36 +00:00
iposva@google.com 2eb35665a8 Fix bug 5883:
- Fix condition when removing isolates being debugged.
- Reenable debugging for Linux and Windows.
Review URL: https://codereview.chromium.org//11145023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13661 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-15 17:53:43 +00:00
asiva@google.com ceed3e5beb - Add support to interrupt a running isolate with the following command:
<===  InterruptCmd = "{" RequestId "," command ":" interrupt "," params ":" "{" isolateId ":" Integer "}" "}"
===>  InterruptCmdResp = "{" RequestId "}"

- Send isolate events over to the debugger client in the following format:
===>  "{" event ":" isolate "," params ":" "{" reason ":" created "," id ":" Integer "}" "}"
===>  "{" event ":" isolate "," params ":" "{" reason ":" shutdown "," id ":" Integer "}" "}"
===>  "{" event ":" paused "," params ":" "{" reason ":" interrupted "," callFrames ":" StackTrace "}" "}"

- Added id ";" Integer, to params in all paused events messages

- create per isolate debugger message queues, instead of the global static one

- Add 'i' command in ddbg to exercise the interrupt feature

- Add support for handling isolave event messages in ddbg
Review URL: https://codereview.chromium.org//11028040

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13333 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 23:10:28 +00:00
asiva@google.com 6076250adb 1. Create a port when a debugger object is created for an isolate, use this
port as the unique ID to represent an isolate in the debugger message
   format.

2. Switch the Event handler API to use an isolate id instead of the isolate
   object itself.

3. Add a unit test case for isolate debugger event handling with an
   interrupt of isolate to ensure that interrupting the isolate runs
   the interrupt event handler.
Review URL: https://codereview.chromium.org//11052006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13207 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 00:13:37 +00:00
asiva@google.com 862687a987 First step towards support for being able to interrupt a running Dart Isolate
using the debugger API
- restructure the debug connection handler code to allow a native thread
  to accept debug connections and read debug commands
- added a new message queue data structure for being able to dispatch
  debug commands on a per isolate basis
- add framework for generic commands and isolate specific commands.
Review URL: https://codereview.chromium.org//10990089

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13186 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 17:13:43 +00:00