- Add missing breadcrumbs to class heirarchy, flags and timetime view.
- Truncate large objects by default so we can look at them without falling over.
- Demangle local variable names.
R=turnidge@google.com
Review URL: https://codereview.chromium.org/1463123002 .
Instead of collecting closures functions in each class object, maintain one list per isolate. This is a step towards getting rid of top-level classes.
I'd appreciate if John could take a look at the service isolate and coverage related change.
I'd appreciate if Ryan could take a look at the precompilation related change.
When compiling all of corelib, the list of closures in the isolate is about 600 entries long. If this linear list should become a bottleneck, I'll deal with it later. (Sadly, some code relies on the fact that a closure can be identified with a list index, so making it a hash table instead of an array does not work.)
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1436243005 .
- When printing implicit getter or setter functions, include the field that the implicit functions were generated for.
- Display field on function view in Observatory.
- Service unit test.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1440753002 .
A TimelineTask represents an asynchronous track of operations on the timeline.
The old API allowed multiple isolates to emit events simultaneously on the same task or to start / finish events in any order. This isn't supported by our UI and probably many other tools that consume trace-event.
With this change, operations within a TimelineTask must complete in the reverse order of their start calls (aka a stack). You can pass a TimelineTask from one isolate to another but you must first complete all open operations before passing it.
Example:
var task = new TimelineTask();
task.start('Some phase');
await someFuture;
task.finish();
Also: Add support for instant events.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1412183008 .
Service Protocol:
- _clearVMTimeline (clear timeline)
- _getVMTimeline (fetch timeline)
- _setVMTimelineFlag (control recording)
- _getVMTimelineFlag (...)
- _getVMTimeline service unit test
Observatory:
- timeline page with record on/off, clear timeline, and refresh buttons.
- trace-viewer based timeline view that runs in an iframe driven by a small javascript program
Misc:
- Fix default enable logic bugs
- Add 'Debugger Pause' timeline event
- Threads can have a name and that name will be displayed in Observatory
- Tighten up locking when printing JSON
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1406413006 .
More specifically ./tools/test.py --noopt -mall -ax64,simarm,simarm64,simmips --exclude-suite=pkg
- Add missing dart:io entry point.
- Add checks that Dart_FinalizeLoading, Dart_Precompile, Dart_CreatePrecompiledSnapshot are called in order.
- Add checks for --precompilation flag.
- Add checks for dropped class in Dart_New/Allocate/AllocateWithNativeFields.
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1407393005 .
This change add the ability to restart the vm through the service
protocol. All isolates are killed, and then the main isolate is
restarted cooperatively by the embedder.
This change also fixes the message handler to prevent it from
accidentally ignoring vm shutdown messages.
Previously, we would stop handling messages whenever we hit an error
(such as a compile error or an unhandled exception). This would leave
shutdown requests sitting the oob queue, neglected.
We now process *all* oob requests, up to the first shutdown request.
When we hit a shutdown request, we clear the oob queue and process no
more messages.
To make all of this work, we had to change the return value of
HandleMessage from bool to a new enum type, allowing the message
handler to distinguish *normal* error cases from the more rarified
shutdown and restart cases.
R=johnmccutchan@google.com, zra@google.com
Review URL: https://codereview.chromium.org/1371193005 .
I plan on refactoring the io_resource_info.dart file a bit in a follow up, but I keept this simple
I also plan on adding some sort of sanity checking when the vm exits, to make sure
all 3 maps are empty (in debug mode)
This fixes issue #24314, before we would hold on to process that failed to start
running in the _processes map.
Closes#24314
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//1331033003 .
Move stopwatch so that we will only ever need one instance
Add utility functions for doing reads and writes
The only functional change here is that I say that an except is a read
of one byte, which also updates the readcount. I think this is just as
correct as what we did before.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//1320023008 .
Start tracking the read/write information for files in the new
resource management class.
There is currently no time information, I will refactor the timings so that the
static stopwatch from the socket_patch class is moved into the resource class
instead in a follow up (keeping this simply and only about the file addition).
The testing setup may seem a bit strange, but it is the only way I
seem to be able to guarantee that setup actually finishes and that we
get it cleaned up. John may know of a better way
R=sgjesse@google.com, johnmccutchan@google.com
BUG=
Review URL: https://codereview.chromium.org//1326703004 .
They are all forwarding functions now, and this was causing some
oddities in the observatory UI where some functions had coverage info
on their first line and some didn't. The coverage info always
reflected merely whether or not the closure had been invoked yet,
which was confusing.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1330703002 .
The current implementation only has information about tcp and udp
sockets, and we explicitly do not track internal and pipe uses of
_NativeSockets.
The testing of this is done through the service layer, which is the end user of
this.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//1323943003 .
- Display paused time as tooltip over "paused" word.
- Send a timestamp with every ServiceEvent.
- Unit tests verifying that paused on start, exit, and breakpoint timestamps are stable.
- Remember the pause time in DebuggerEvent.
- Remember the pause time in MessageHandler.
- Updated service protocol documentation.
R=turnidge@google.com
Review URL: https://codereview.chromium.org//1311503004 .