Commit Graph

186 Commits

Author SHA1 Message Date
hausner@google.com 549f9d467c Detect compile errors when setting breakpoint
When the VM is started with the —-debug option, it compiles the main
function eagerly to set a one-shot breakpoint. So far we silently
dropped errors during the compilation, which is wrong. This change
propagates the error to the caller.

Fixes issue https://code.google.com/p/dart/issues/detail?id=20558

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39390 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 22:34:07 +00:00
turnidge@google.com 7595f9e69e Add breakpoints and single-stepping to Observatory.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38654 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 23:08:47 +00:00
srdjan@google.com 154eb30f58 ONe more iteration of PcDesacriptor iterator imporvement: do not copy record but access individual values when needed.
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38408 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-18 20:11:29 +00:00
srdjan@google.com 1259bda234 Fix PcDescriptor iterator to never return a pointer to a memory location since the PcDescriptor can move with the GC.
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38338 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-17 18:30:38 +00:00
srdjan@google.com 2bb77cd8d5 Iterate over PcDescriptors only via iterators, not via an index. (preparation for more compression of PcDescriptors).
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38032 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-07 18:25:45 +00:00
turnidge@google.com f849afc751 Add support for asynchronous event notification to the observatory.
Implement "isolate pause" notifications.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37841 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 22:46:27 +00:00
turnidge@google.com 78f3f14635 Add pause/resume for isolates in vmservice/observatory.
Improve the isolate view and isolate summary.

Details:

- Rig DbgMsgQueueList so it can run even when the debugger hasn't started.

- Add <action-link> element for pause/resume actions.

- Introduce new flex-percentile css classes.

- Add <isolate-run-state>, <isolate-location>, <isolate-shared-summary>, and <isolate-counter-chart> elements.  Counters are now displayed as a pie chart instead of as text.

- Reorg <isolate-view> and <isolate-summary> substantially.

- Add shared style sheet to <script-view>.

- Combine pause-on-start/pause-on-exit with other debugger pause events and present a consistent representation for these in the vm service.  Reorg how pause events are shown in <isolate-run-state>.

- Give the user a nicer message when an isolate is still loading.

- Move the /resume command to /debug/resume.  Implement this with a bool in the Isolate class which is used to smuggle resume requests from the vm service to the dart embedding api.

- Add the /debug/pause command to the vm service

- Break the DebuggerEvent struct out into its own top-level class.  Add JSON printing.

etc.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36366 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-20 17:09:08 +00:00
turnidge@google.com 9243ffc4ff Always use the same json for null in the vm service.
PrintToJSONStream -> PrintJSON.

ALSO:

Fix <em> tags in the Observatory.

BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35532 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-29 18:10:02 +00:00
hausner@google.com f5dd5598ac Don’t set more than one code breakpoint per token position
Some time ago when operator== calls had inlined null checks at
the call site, the debugger had to instrument multiple code breakpoints
that were all mapping to the same source position. This is no longer
necessary. This change makes sure we set a code breakpoint only at
the lowest compiled code address, so that expressions like i++ no longer
result in 2 or 3 breakpoints (one each for load filed, add, store field).

Fixes 18397.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35510 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-28 23:40:34 +00:00
hausner@google.com 3f40651e3a Support evaluation of expressions in context of a stack frame
This change adds a debugger API function to evaluate an expression
in the context of a particular stack frame. The expression can
refer to local variables accessible in the frame, but it cannot
alter the variables.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35340 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 22:56:23 +00:00
turnidge@google.com 110570e9fe Fixes a problem with the recovery of contexts in the debugger at closure calls.
When we call a closure, the caller saves the context before the call.
So when walking the stack, we used to check the callee activation to
see if it was a closure call, and then recover our caller-saved
context.

This breaks down in the following case:

1. Caller calls function F.
2. Function F is compiled.
3. The compiler needs to run code to evaluate a constant (e.g. a
   static final getter).
4. We hit a breakpoint *while* evaluating the constant.

In this case, there is no callee frame for the closure call yet.

I fix this by using the the pc descriptors to see if the current pc in
the caller is a closure call.  This avoids needing to have a callee
frame available.

---

ALSO:

New flags:

--verify-incoming-contexts: in development - verify assumptions about
  contexts in stub code. (currently ia32 only)

--trace-debugger-stacktrace: this helps debug these kinds of
  stacktrace issues.

Miscellaneous improvements to frame and context printing.

BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35130 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-16 20:03:30 +00:00
hausner@google.com f58b04e387 Improve breakpoint resolution
Fix breakpoint setting in exception handlers.

Fixes issue 17880.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34986 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-11 18:04:19 +00:00
hausner@google.com 040093eb26 Handle stepping requests after isolate interrupt event
Adding test case provided by jacobr.

Fix issue 17008

R=jacobr@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32938 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 22:40:11 +00:00
hausner@google.com f9089a3ca5 Find all compiled copies of a function when setting breakpoint
Fixes a bug where the debugger did not find a compiled implicit
closure if the non-closureized version had not been compiled yet,
thus failing to set a breakpoint.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32165 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-30 18:08:02 +00:00
hausner@google.com ed8ea2e281 Handle all debugger stepping with the isolate single step flag
Eliminate stepping with “internal” breakpoints. We can now handle
stepping in recursive functions properly. On the other hand, code
does not run at full speed between step commands, since a runtime
call to the debugger is necessary at each safe point.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32150 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-29 23:47:23 +00:00
turnidge@google.com b891e78325 Post-meetup feature extravaganza.
Remodel the top-level isolate summary page.

Add variables to stack frames in the stack trace.

Stop putting small integers and bools in the object id ring.

Rework how we pass down null references (and null-like references like
uninitialized values).

Collect all isolate timers by default.

Change the lifetime of IsolateSpawnState so that we can refer to it
later to know how an isolate started up.  Stop pretending that
IsolateSpawnState is a void*.  Clean up vestigial IsolateStartData.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32128 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-29 18:40:12 +00:00
hausner@google.com 682855e8cc Ensure the debugger keeps a reference to code objects
Keep the code object in a breakpoint object rather than the
function object. This ensures that the GC can’t collect the
code object while there are breakpoints for the function.

R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32006 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-24 23:55:11 +00:00
hausner@google.com 812467f0f6 Fix several little buglets with stepping
No need to halt on single step if there is a breakpoint on the
same location. While looking at the resulting test failures, I
discovered that the step_in_equals test was not at all testing
what it was meant to test. It happened to pass because of a
related bug in the parser. Decided to abandon that test and
instead check that we can break at == even if one of the operands
is null.

Added ability to match line numbers in the debugger tests.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31898 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 21:15:17 +00:00
hausner@google.com b4f0bf5998 Fix debugger stub patching on x64 architecture
Instead of patching the entry in the object pool, patch the offset
into the pool at the call site.

SIMARM and SIMMIPS will have to be fixed the same way in a later change.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31812 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-14 23:27:13 +00:00
hausner@google.com c571528323 Make return statements single steppable
Replace the code smashing breakpoints at function returns with a call
to a runtime stub that checks whether the debugger is single stepping.
The call to the stub is only emitted in unoptimized code.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31435 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-02 23:31:52 +00:00
hausner@google.com 15e8f121dd Change how debugger handles source breakpoints
- Identify a source breakpoint by a script and a token position
  rather than a function object.
- When a new breakpoint is set, iterate over all compiled functions
  to see whether code breakpoints must be set.

This change fixes issues with functions that get compiled several
times, for example as implicit closures or a copies of mixin
functions or local closures of mixing functions. We did not detect
all duplicates of functions.

Eliminated recently introduced const modifiers in SourceBreakpoint
class. They tend to be in the way because several accessor methods
of SourceBreakpoint compute data lazily and modify the object as a
side effect.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31372 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-26 20:53:58 +00:00
turnidge@google.com 383468782e Keep track of current "pause" event in the debugger.
This will allow us (later) to make nice descriptions of the state of
an isolate, e.g. "isolate 7112 is paused due to breakpoint 2" or
"isolate 7112 is paused due to interrupt" or "isolate 7112 is
running".

Use a new Pause() function to call the event handler during a pause.
It does some shared checking, setup, teardown.

Minor change in isolate interrupt handling - before we were not
setting 'in_event_handler_' in this case.  Now we set 'pause_event_'
here, which will guard against recursive pauses in this case.

Reviewer: not sure what I think about all the names I used here.
"pause_event_" is very similar to PausedEvent but means something
different, as it includes pauses, interrupts, and (maybe) exceptions.
Dunno.

R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31356 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 22:30:23 +00:00
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
turnidge@google.com 7781fd4759 Remove old stack-walking code. The new code seems to be doing fine.
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31111 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-12 21:33:25 +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
rmacnak@google.com af3f18fa84 Add an API function to get a debugger stack trace from an error handle.
BUG=http://dartbug.com/14322
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30323 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-15 23:42:23 +00:00
rmacnak@google.com 45c7c58273 Filter frames from debugger stack based on visibility rather than "debuggability" (steppability).
R=asiva@google.com, hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30280 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-14 18:37:50 +00:00
turnidge@google.com b4b7e5899c Allow access to context variables in optimized/inlined frames.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28669 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-15 18:17:36 +00:00
turnidge@google.com b15b2931e0 Allow the debugger to inspect local variables from optimized and
inlined frames.

------------

Most remaining deoptimization code from the code generator moves to
DeoptContext.  This allows the code to be reused by the debugger.
There is some rework of the code along the way.  The remaining code in
the code generator is simpler.

Implement the ability to deopt a frame to an Array.  Each inlined
frame accesses its locals from this array at some fixed offset.

Refactor the Debugger::CollectStackTrace code.  New code is int
Debugger::CollectStackTraceNew.  There is a flag --use_new_stacktrace
which can be used to revert back to the old version.  I intend to
remove this flag shortly, after any dust clears.

Added a unit test which makes sure that we can inspect locals from
optimized and inlined frames.  Tested this code in the dart editor
debugger as well.

R=iposva@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28468 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-10 18:15:53 +00:00
hausner@google.com 8e9139da08 Fix debugger stack traces
This change fixes the lookup of exception handlers that are
contained in activation frames that are not user-visible
(e.g. frames in dart library code).

Fixes issue 12318 (https://code.google.com/p/dart/issues/detail?id=12318)

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26445 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-21 17:22:30 +00:00
fschneider@google.com 13b7b7242a Faster invocation of fields as methods.
Until now there was a large discrepancy between

x.f() and
(x.f)()

This CL makes x.f() as fast as (x.f)() by automatically
generating  a intermediate dispatcher function that loads
the field and invokes the result as a closure.

The approach resembles the one taken for fast noSuchMethod
invocation and reuses the same per-class cache
of dispatcher functions.

It also fixes a bug in the debugger so that VM-generated 
implicit dispatcher functions (like for noSuchMethod, or
field-as-method invocation) don't show up the debuggers
stack trace.

BUG=https://code.google.com/p/dart/issues/detail?id=11041
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25001 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 11:12:09 +00:00
hausner@google.com 1e955965df Better single stepping in VM debugger
Single stepping now steps into the next dart code that the
user is interested in, including from one asynchronous task
to the next.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24632 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-01 17:29:18 +00:00
hausner@google.com 4b497b0c17 Consolidate debug stubs
The new debug stub BreakpointRuntime gets the original stub address
from the debugger. With this scheme, we don't need a new debug stub
for every runtime stub that the debugger patches.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23094 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-23 18:42:03 +00:00
hausner@google.com b466bceb20 Make VM debugger stop at every safe point
Debugger front-end can decide to ignore some steps and only halt
when the next line is reached.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22972 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-21 23:07:22 +00:00
hausner@google.com 2b7746ae05 Allow breakpoints on one-liner functions
Fixes issue 10234. This is also the first step for setting
reliable breakpoints on a == b expressions.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22799 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-16 15:44:05 +00:00
hausner@google.com 80c7ad1070 Implement breakpoint for closure calls
Introduce a new PcDescriptor kind to distinguish closure calls from other runtime calls. The debugger can patch these calls to set a breakpoint. When stepping into a closure call, the debugger must fish out the closure object from the stack, find the function and set breakpoints in it.

Arm and Mips breakpoint stubs are not implemented yet. ia32 and x64 stubs tested by hand. Automated test to follow.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22596 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-10 21:06:04 +00:00
iposva@google.com a6fb0962e2 - Fixed some old-style casts.
- Remove TODO as it is not feasible to ever enable.

R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22313 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 11:40:23 +00:00
hausner@google.com d852cd37c4 Another fix for debugging stack traces and captured variables.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22196 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-30 19:46:07 +00:00
hausner@google.com d7fdf7f0e8 Fix context-allocated variables in stack traces
The debugger did not properly use saved contexts when collecting a stack trace.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22070 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-26 15:27:00 +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
tball@google.com 95dfaf1718 Updated VM stacktrace support (20898) with platform-
independent version of strndup.
Review URL: https://codereview.chromium.org//13587008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20936 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 18:48:24 +00:00
tball@google.com 404dc8ca8b Rollback of 20898 (Windows doesn't support strndup)
Review URL: https://codereview.chromium.org//13583008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20901 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 22:29:07 +00:00
tball@google.com 94c40f13f3 Added VM support for isolate stacktrace status.
Review URL: https://codereview.chromium.org//12842015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20898 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 22:03:06 +00:00
asiva@google.com 80e281a078 Fix for issues 6080 -
- Read the saved context from the entry frame when straddling across C++ frames while iterating over a stack trace in the debugger. This ensures that the correct context is setup in the ActivationFrame structure in these scenarios (instead of the empty context).

- Read the saved context from the caller's frame when iterating over a stack trace in the debugger. The compiler saves the context in the caller frame before invoking closures, we read this saved context when iterating the stack trace.
Review URL: https://codereview.chromium.org//12179020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18235 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-07 22:43:16 +00:00
asiva@google.com 109cbae3dd Minor cleanup of activation frame creation code. Get the code object while iterating the frames as that is way faster than doing a code lookup later.
Review URL: https://codereview.chromium.org//12225031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18162 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-06 01:45:56 +00:00
hausner@google.com c3a133777d Add function for one-time stop at function entry
Adds function Dart_OneTimeBreakAtEntry()

Used by debugger clients to stop at the beginning of the program without setting a user-visible breakpoint.
Review URL: https://codereview.chromium.org//11926026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17332 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-19 00:03:30 +00:00
hausner@google.com cfb3b53aac Check whether exceptions are caught
The debugger can now determine whether an exemption will be caught or not.
Review URL: https://codereview.chromium.org//11946020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17167 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-16 22:16:09 +00:00
hausner@google.com e8a293c05a Allow optimized code when debugger is active
The debugger allows the VM to optimize code unless there is a breakpoint inside the
function. Whenever a new breakpoint is set (explicitly or implicitly by stepping)
all optimized code is discarded.
Review URL: https://codereview.chromium.org//11780005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16815 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-08 18:57:19 +00:00
hausner@google.com 016b84310a Handle optimized code blocks in debugger stack trace
Removed an old restriction that debugger activation frames
are expected to be non-optimized code. Fixes bug 5944.
Review URL: https://codereview.chromium.org//11776007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16665 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-05 00:46:23 +00:00