I'm still plugging away on this. I reverted my v8 build back to a stable 
version (6.9.427.22), and got a few crashes (which weren't occurring in 
7.0.0, but still nothing in CDT)

So I set to making a minimal inspector example with websockets (which 
AFAIK, still doesn't exist on the internet)
I have a single func (from helloworld) with a loop at the end which pumps 
the message loop, and then handles messages I've buffered up from the 
websocket.

I've gotten a tiny bit further (CDT now shows a "VM12" with a single "this" 
in the source when I break)
But I still hit the assert below. (which should never happen? is there no 
support for delayed tasks?) 
delay_in_seconds is 0.5

I've typed h into the console for auto complete, and my 
inspector/session/client has responded with some interfaces, but then CDT 
sends this message

*Message={"id":25,"method":"Runtime.evaluate","params":{"expression":"h","includeCommandLineAPI":true,"contextId":1,"generatePreview":true,"userGesture":true,"awaitPromise":false,"throwOnSideEffect":true,"timeout":500}}*

Still cutting this down to a very minimal example...






void DefaultWorkerThreadsTaskRunner::PostDelayedTask(std::unique_ptr<Task> 
task,

                                                     double 
delay_in_seconds) {

  base::LockGuard<base::Mutex> guard(&lock_);

  if (terminated_) return;

  if (delay_in_seconds == 0) {

    queue_.Append(std::move(task));

    return;

  }

  // There is no use case for this function with non zero delay_in_second 
on a

  // worker thread at the moment, but it is still part of the interface.

  UNIMPLEMENTED();

}


Stacktrace in case it's handy


#0 0x00000001007d5ff2 in v8::base::OS::Abort() at 
/Volumes/Code/v8build/v8/out.gn/x64.release/../../src/base/platform/platform-posix.cc:397

#1 0x00000001005f1a29 in 
v8::platform::DefaultWorkerThreadsTaskRunner::PostDelayedTask(std::__1::unique_ptr<v8::Task,
 
std::__1::default_delete<v8::Task> >, double) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/../../src/libplatform/default-worker-threads-task-runner.cc:49

#2 0x00000001005f0ce8 in 
v8::platform::DefaultPlatform::CallDelayedOnWorkerThread(std::__1::unique_ptr<v8::Task,
 
std::__1::default_delete<v8::Task> >, double) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/../../src/libplatform/default-platform.cc:204

#3 0x00000001007b3c10 in 
v8_inspector::V8InspectorImpl::EvaluateScope::setTimeout(double) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/../../src/inspector/v8-inspector-impl.cc:423

#4 0x00000001007be1b4 in 
v8_inspector::V8RuntimeAgentImpl::evaluate(v8_inspector::String16 const&, 
v8_inspector::protocol::Maybe<v8_inspector::String16>, 
v8_inspector::protocol::Maybe<bool>, v8_inspector::protocol::Maybe<bool>, 
v8_inspector::protocol::Maybe<int>, v8_inspector::protocol::Maybe<bool>, 
v8_inspector::protocol::Maybe<bool>, v8_inspector::protocol::Maybe<bool>, 
v8_inspector::protocol::Maybe<bool>, v8_inspector::protocol::Maybe<bool>, 
v8_inspector::protocol::Maybe<double>, 
std::__1::unique_ptr<v8_inspector::protocol::Runtime::Backend::EvaluateCallback,
 
std::__1::default_delete<v8_inspector::protocol::Runtime::Backend::EvaluateCallback>
 
>) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/../../src/inspector/v8-runtime-agent-impl.cc:266

#5 0x000000010076b221 in 
v8_inspector::protocol::Runtime::DispatcherImpl::evaluate(int, 
std::__1::unique_ptr<v8_inspector::protocol::DictionaryValue, 
std::__1::default_delete<v8_inspector::protocol::DictionaryValue> >, 
v8_inspector::protocol::ErrorSupport*) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/gen/src/inspector/protocol/Runtime.cpp:1717

#6 0x00000001007691c4 in 
v8_inspector::protocol::Runtime::DispatcherImpl::dispatch(int, 
v8_inspector::String16 const&, 
std::__1::unique_ptr<v8_inspector::protocol::DictionaryValue, 
std::__1::default_delete<v8_inspector::protocol::DictionaryValue> >) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/gen/src/inspector/protocol/Runtime.cpp:1372

#7 0x000000010073d7c2 in 
v8_inspector::protocol::UberDispatcher::dispatch(std::__1::unique_ptr<v8_inspector::protocol::Value,
 
std::__1::default_delete<v8_inspector::protocol::Value> >, int*, 
v8_inspector::String16*) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/gen/src/inspector/protocol/Protocol.cpp:822

#8 0x00000001007b6ecd in 
v8_inspector::V8InspectorSessionImpl::dispatchProtocolMessage(v8_inspector::StringView
 
const&) at 
/Volumes/Code/v8build/v8/out.gn/x64.release/../../src/inspector/v8-inspector-session-impl.cc:316


On Monday, 27 August 2018 13:49:37 UTC+1, @soylentgraham wrote:
>
> Through various sources (ie, googling & github) I've finally got a bit of 
> a grasp of the flow for connecting chrome dev tools to my v8 app. (which is 
> using a pretty recent HEAD build I've built myself with all default 
> settings other than compiling as a static lib[s]. v8-version.h says 7.0.0.0)
>
> I connect via an explicit url (can't quite get json/list/ to show up in 
> chrome yet)
> *chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:8008
>  
> <http://127.0.0.1:8008>*
> (Not sure how relevant the v8only=true and experiments=true are, couldn't 
> find any documentation on this)
>
> This connects to my websocket, and I pass all messages straight to 
> *Session->dispatchProtocolMessage*
>
> My channel then gets *sendResponse's* in return, which I send back to 
> chrome over my websocket.
>
> Chrome dev tools shows essentially an empty debugger, no sources, no 
> console output, no errors...
>
> The responses my isolate/context sends back, suggest maybe I have some JS 
> symbols/modules missing, which maybe I need to implement?
> I'm kinda assuming this, as the debugger. methods succeed, but things like 
> *Inspector.enable* (which I haven't found anyone implementing, but some 
> people are implementing Inspector objects, just with different methods) fail
>
> *Chrome tools message: {"id":16,"method":"Inspector.enable"}*
>
> *Channel response: {"error":{"code":-32601,"message":"'Inspector.enable' 
> wasn't found"},"id":16}*
> Is this why chrome isn't proceeding with anything?
> Am I supposed to implement these, or perhaps are they missing from my 
> native blobs when I built my v8 libraries?
>
> My overloads of the inspector client functions like 
> *runMessageLoopOnPause* aren't being called, but I assume that's just 
> because I haven't gotten to any stage where commands are being evaluated?
>
> Below is what I get when I connect chrome, but then it just sits there :)
>
> Thanks for any pointers in the right direction!
>
> *Chrome tools message: 
> {"id":1,"method":"Network.enable","params":{"maxPostDataSize":65536}}*
>
> *Channel response: {"error":{"code":-32601,"message":"'Network.enable' 
> wasn't found"},"id":1}*
>
> *Chrome tools message: {"id":2,"method":"Page.enable"}*
>
> *Channel response: {"error":{"code":-32601,"message":"'Page.enable' wasn't 
> found"},"id":2}*
>
> *Chrome tools message: {"id":3,"method":"Page.getResourceTree"}*
>
> *Chrome tools message: {"id":4,"method":"Profiler.enable"}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'Page.getResourceTree' wasn't 
> found"},"id":3}*
>
> *Channel response: {"id":4,"result":{}}*
>
> *Chrome tools message: {"id":5,"method":"Runtime.enable"}*
>
> *Channel response: 
> {"method":"Runtime.executionContextCreated","params":{"context":{"id":1,"origin":"","name":"PopEngineContextName"}}}*
>
> *Channel response: {"id":5,"result":{}}*
>
> *Chrome tools message: {"id":6,"method":"Debugger.enable"}*
>
> *Channel response: 
> {"method":"Debugger.scriptParsed","params":{"scriptId":"9","url":"","startLine":0,"startColumn":0,"endLine":1,"endColumn":0,"executionContextId":1,"hash":"2a70962568dbbde00fb323decd63c2ca137b304c","isLiveEdit":false,"sourceMapURL":"","hasSourceURL":false,"isModule":false,"length":17}}*
>
> *Channel response: 
> {"id":6,"result":{"debuggerId":"(6B1A58050CBFAE70E5B41C5556E5520D)"}}*
>
> *Chrome tools message: 
> {"id":7,"method":"Debugger.setPauseOnExceptions","params":{"state":"uncaught"}}*
>
> *Channel response: {"id":7,"result":{}}*
>
> *Chrome tools message: 
> {"id":8,"method":"Debugger.setAsyncCallStackDepth","params":{"maxDepth":32}}*
>
> *Channel response: {"id":8,"result":{}}*
>
> *Chrome tools message: {"id":9,"method":"DOM.enable"}*
>
> *Channel response: {"error":{"code":-32601,"message":"'DOM.enable' wasn't 
> found"},"id":9}*
>
> *Chrome tools message: {"id":10,"method":"CSS.enable"}*
>
> *Channel response: {"error":{"code":-32601,"message":"'CSS.enable' wasn't 
> found"},"id":10}*
>
> *Chrome tools message: {"id":11,"method":"Overlay.enable"}*
>
> *Channel response: {"error":{"code":-32601,"message":"'Overlay.enable' 
> wasn't found"},"id":11}*
>
> *Chrome tools message: 
> {"id":12,"method":"Overlay.setShowViewportSizeOnResize","params":{"show":true}}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'Overlay.setShowViewportSizeOnResize' 
> wasn't found"},"id":12}*
>
> *Chrome tools message: {"id":13,"method":"Log.enable"}*
>
> *Channel response: {"error":{"code":-32601,"message":"'Log.enable' wasn't 
> found"},"id":13}*
>
> *Chrome tools message: 
> {"id":14,"method":"Log.startViolationsReport","params":{"config":[{"name":"longTask","threshold":200},{"name":"longLayout","threshold":30},{"name":"blockedEvent","threshold":100},{"name":"blockedParser","threshold":-1},{"name":"handler","threshold":150},{"name":"recurringHandler","threshold":50},{"name":"discouragedAPIUse","threshold":-1}]}}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'Log.startViolationsReport' wasn't 
> found"},"id":14}*
>
> *Chrome tools message: {"id":15,"method":"ServiceWorker.enable"}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'ServiceWorker.enable' wasn't 
> found"},"id":15}*
>
> *Chrome tools message: {"id":16,"method":"Inspector.enable"}*
>
> *Channel response: {"error":{"code":-32601,"message":"'Inspector.enable' 
> wasn't found"},"id":16}*
>
> *Chrome tools message: 
> {"id":17,"method":"Target.setAutoAttach","params":{"autoAttach":true,"waitForDebuggerOnStart":true}}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'Target.setAutoAttach' wasn't 
> found"},"id":17}*
>
> *Chrome tools message: 
> {"id":18,"method":"Target.setDiscoverTargets","params":{"discover":true}}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'Target.setDiscoverTargets' wasn't 
> found"},"id":18}*
>
> *Chrome tools message: 
> {"id":19,"method":"Target.setRemoteLocations","params":{"locations":[{"host":"localhost","port":9229}]}}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'Target.setRemoteLocations' wasn't 
> found"},"id":19}*
>
> *Chrome tools message: 
> {"id":20,"method":"Debugger.setBlackboxPatterns","params":{"patterns":["/main\\.js\\b"]}}*
>
> *Channel response: {"id":20,"result":{}}*
>
> *Chrome tools message: 
> {"id":21,"method":"Page.getNavigationHistory","params":{}}*
>
> *Channel response: 
> {"error":{"code":-32601,"message":"'Page.getNavigationHistory' wasn't 
> found"},"id":21}*
>
>
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to