With a lot of back & forth help from Ibon/hyperandroid, we've got a bit further in working out which things are good, and which are bad. Feels like we're close, but things are still unstable, and a bit unresponsive.
I can kinda break into the code (which only shows *this *in sources) Still get the assert above from trying to autocomplete too many times. (albeit after a RunMessageLoop callback now) And if I add a script origin, I get a crash trying to stacktrace (immediately when connecting, still trying to figure this out, as my scriptorigin is okay) More stripped back version here (cutting more dependencies out, but all my setup, inspector, frontend, messaging is in v8minimal.cpp) https://github.com/SoylentGraham/V8InspectorMinimal 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.