Hrmm, not sure what happened, I search now and I see this: https://github.com/hsharsha/v8inspector/blob/a8219beb1b69ae6cbec1c79274291a14910cc248/inspector_agent.cc#L308
On Tuesday, June 6, 2017 at 11:08:52 PM UTC-7, Zac Hansen wrote: > > I searched your code for runMessageLoopOnPause and didn't find an override > in your subclass. I'm no expert, but the code that I have that works is: > > https://github.com/xaxxon/v8toolkit/blob/9770d167bc6c39ee731fa10ff08226 > 7f250c53ab/include/debugger.h#L286 > > > > virtual void runMessageLoopOnPause(int contextGroupId) override { > this->paused = true; > while (this->paused) { > this->channel->run_one(); > } > std::cerr << fmt::format("exiting runMessageLoopOnPause") << std::endl; > } Where run_one is what gives my websocket server a chance to deal with > incoming chrome debug protocol messages. > > On Tuesday, June 6, 2017 at 10:46:29 PM UTC-7, Harsha HS wrote: >> >> Having trouble when those are hit. I am able to set breakpoints >> I am processing messages in the pause loop. I can watch and respond to >> getProperty methods when paused. >> But only way to pause in my code is by hitting halt on the dev-tools. >> Any other action like step, will just continue the JS execution and it >> wont hit breakpoints. Only way to pause again is to hit halt. >> >> Code is at https://github.com/hsharsha/v8inspector >> It depends on libuv to interact with browser. >> >> Thanks, >> -Harsha >> >> On Wednesday, June 7, 2017 at 11:09:57 AM UTC+5:30, Zac Hansen wrote: >>> >>> Are you having trouble setting those or when those are hit? >>> >>> When they are hit, your code will go into the same callback as when you >>> manually pause, from what I've seen. Are you processing messages while in >>> the pause callback? >>> >>> >>> >>> On Tuesday, June 6, 2017 at 10:27:24 AM UTC-7, Harsha HS wrote: >>>> >>>> Hi, >>>> >>>> runMessageLoopOnPause and quitMessageLoopOnPause seems to be working >>>> correctly. When the debugger is paused using the halt icon on chrome-dev >>>> tools, runMessageLoopOnPause is called and it is just pumping messages to >>>> platform and when continued quitMessageLoopOnPause is called and the java >>>> script execution continues. >>>> >>>> I am facing issue with single step, break, step into or step over >>>> functionality. Debugger is not paused when these methods are hit. >>>> It looks like a synchronization issue between inspector thread and java >>>> script execution thread. >>>> How to synchronize between JS execution and inspector protocol? >>>> >>>> Thanks, >>>> -Harsha >>>> >>>> On Monday, May 29, 2017 at 10:42:33 AM UTC+5:30, Anoop R. S. wrote: >>>>> >>>>> Hi Harsha, >>>>> Is it setting the breakpoints by passing "method":"Debugger. >>>>> setBreakpointByUrl" ? >>>>> Seems like it is having problems on pausing: pausing at a breakpoint, >>>>> pausing after singlestep operation. >>>>> runMessageLoopOnPause function is called when debugger pauses (at a >>>>> breakpoint, after step over etc) >>>>> >>>>> https://groups.google.com/forum/#!topic/v8-users/qmr92Cgagg4 >>>>> >>>>> Here is my call stack when pause happens after a step over. You can >>>>> use it for debugging. >>>>> >>>>> >ChromeDbgServer.exe!V8SFWInspector::runMessageLoopOnPause(int >>>>> contextGroupId) Line 18C++ >>>>> >>>>> v8.dll!v8_inspector::V8Debugger::handleProgramBreak(v8::Local<v8::Context> >>>>> >>>>> pausedContext, v8::Local<v8::Object> executionState, v8::Local<v8::Value> >>>>> exception, v8::Local<v8::Array> hitBreakpointNumbers, bool >>>>> isPromiseRejection, bool isUncaught) Line 519C++ >>>>> v8.dll!v8_inspector::V8Debugger::handleV8DebugEvent(const >>>>> v8::DebugInterface::EventDetails & eventDetails) Line 620C++ >>>>> v8.dll!v8_inspector::V8Debugger::v8DebugEventCallback(const >>>>> v8::DebugInterface::EventDetails & eventDetails) Line 540C++ >>>>> v8.dll!v8::internal::Debug::CallEventCallback(v8::DebugEvent event, >>>>> v8::internal::Handle<v8::internal::Object> exec_state, >>>>> v8::internal::Handle<v8::internal::Object> event_data, >>>>> v8::Debug::ClientData * client_data) Line 1903C++ >>>>> v8.dll!v8::internal::Debug::ProcessDebugEvent(v8::DebugEvent event, >>>>> v8::internal::Handle<v8::internal::JSObject> event_data, bool >>>>> auto_continue) Line 1880C++ >>>>> >>>>> v8.dll!v8::internal::Debug::OnDebugBreak(v8::internal::Handle<v8::internal::Object> >>>>> >>>>> break_points_hit, bool auto_continue) Line 1818C++ >>>>> v8.dll!v8::internal::Debug::Break(v8::internal::JavaScriptFrame * >>>>> frame) Line 573C++ >>>>> >>>>> v8.dll!v8::internal::__RT_impl_Runtime_DebugBreak(v8::internal::Arguments >>>>> args, v8::internal::Isolate * isolate) Line 35C++ >>>>> v8.dll!v8::internal::Runtime_DebugBreak(int args_length, >>>>> v8::internal::Object * * args_object, v8::internal::Isolate * isolate) >>>>> Line 25 + 0xde bytesC++ >>>>> >>>>> Hope I am not too late for the reply. >>>>> >>>>> regards, >>>>> Anoop R. S. >>>>> >>>>> --From Mail >>>>> >>>>>> Hi Anoop, >>>>>> >>>>>> Thanks for your reply and very sorry for the delay in my reply as I >>>>>> was on vacation and did not get a chance to work on the inspector code. >>>>>> >>>>>> I fixed issue which was a silly mistake from my end as I was >>>>>> allocating the agent variable on stack which go cleaned up once the >>>>>> function returned. >>>>>> >>>>>> Now I could establish connection with the chrome-dev tools client and >>>>>> communicate with the debug server. >>>>>> I am facing an issue here. >>>>>> i) It is not breaking on the first statement, even though I have wait >>>>>> implemented >>>>>> ii) I can now stop the execution using halt from the chrome-dev >>>>>> tools. But If I do single-step or step out, the execution just continues >>>>>> (work as continue instead of single step) and again I have to press halt >>>>>> on >>>>>> chrome-dev tools to break the execution. >>>>>> >>>>>> If you can take a look at github.com/hsharsha/v8inspector, would >>>>>> appreciate greatly. >>>>>> >>>>>> Thanks, >>>>>> -Harsha >>>>>> >>>>>> On Thu, May 18, 2017 at 1:35 PM, Anoop R. S. wrote: >>>>>> >>>>>>> Hi Harsha, >>>>>>> We also developed a debugging framework for JS using V8 inspector. >>>>>>> While doing that, in between we were also getting this error, but >>>>>>> resolved >>>>>>> it by debugging our code. >>>>>>> I can send you the websocket messages that we are getting. Maybe >>>>>>> that would help in some way. >>>>>>> I haven't run your code provided at [https://github.com/hsharsha/v >>>>>>> 8inspector]. Maybe if you need further help, I can check it. >>>>>>> >>>>>>> >>>>>>> {"id":1,"method":"Log.enable"} >>>>>>> >>>>>>> {"id":2,"method":"Log.startViolationsReport","params":{" >>>>>>> config":[{"name":"longTask","threshold":200},{"name":" >>>>>>> longLayout","threshold":30},{"name":"blockedEvent","threshol >>>>>>> d":100},{"name":"blockedParser","threshold":-1},{"name":" >>>>>>> handler","threshold":150},{"name":"recurringHandler","threshold": >>>>>>> 50}]}} >>>>>>> >>>>>>> {"id":3,"method":"Network.enable","params":{"maxTotalBufferS >>>>>>> ize":10000000,"maxResourceBufferSize":5000000}} >>>>>>> >>>>>>> {"id":4,"method":"Page.enable"} >>>>>>> >>>>>>> {"id":5,"method":"Page.getResourceTree"} >>>>>>> >>>>>>> {"id":6,"method":"Runtime.enable"} >>>>>>> >>>>>>> {"id":7,"method":"Debugger.enable"} >>>>>>> >>>>>>> {"id":8,"method":"Debugger.setPauseOnExceptions","params":{" >>>>>>> state":"none"}} >>>>>>> >>>>>>> {"id":9,"method":"Debugger.setAsyncCallStackDepth","params": >>>>>>> {"maxDepth":0}} >>>>>>> >>>>>>> {"id":10,"method":"DOM.enable"} >>>>>>> >>>>>>> {"id":11,"method":"CSS.enable"} >>>>>>> >>>>>>> {"id":12,"method":"Target.setAutoAttach","params":{"autoAtta >>>>>>> ch":true,"waitForDebuggerOnStart":true}} >>>>>>> >>>>>>> {"id":13,"method":"Profiler.enable"} >>>>>>> >>>>>>> {"id":14,"method":"Profiler.setSamplingInterval","params":{" >>>>>>> interval":100}} >>>>>>> >>>>>>> {"id":15,"method":"ServiceWorker.enable"} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Log.enable' wasn't >>>>>>> found"},"id":1} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Log.startViolationsReport' >>>>>>> wasn't found"},"id":2} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Network.enable' wasn't >>>>>>> found"},"id":3} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Page.enable' wasn't >>>>>>> found"},"id":4} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Page.getResourceTree' wasn't >>>>>>> found"},"id":5} >>>>>>> >>>>>>> {"method":"Runtime.executionContextCreated","params":{" >>>>>>> context":{"id":1,"origin":"","name":""}}} >>>>>>> >>>>>>> {"id":6,"result":{}} >>>>>>> >>>>>>> {"method":"Debugger.scriptParsed","params":{"scriptId":"22", >>>>>>> "url":"my_Screen1","startLine":0,"startColumn":0,"endLine":19," >>>>>>> endColumn":0,"executionContextId":1,"hash":"FF07566204EF >>>>>>> 7A37E97781F777DD9282456E48B3","isLiveEdit":false,"sourceMapURL":""," >>>>>>> hasSourceURL":false}} >>>>>>> >>>>>>> {"id":22,"method":"Debugger.setBreakpointByUrl","params":{" >>>>>>> lineNumber":13,"url":"my_Screen1","columnNumber":39,"condition":""}} >>>>>>> >>>>>>> {"id":7,"result":{}} >>>>>>> >>>>>>> {"id":8,"result":{}} >>>>>>> >>>>>>> {"id":9,"result":{}} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'DOM.enable' wasn't >>>>>>> found"},"id":10} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'CSS.enable' wasn't >>>>>>> found"},"id":11} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Target.setAutoAttach' wasn't >>>>>>> found"},"id":12} >>>>>>> >>>>>>> {"id":13,"result":{}} >>>>>>> >>>>>>> {"id":14,"result":{}} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'ServiceWorker.enable' wasn't >>>>>>> found"},"id":15} >>>>>>> >>>>>>> {"id":16,"result":{}} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Page.setAutoAttachToCreatedPages' >>>>>>> wasn't found"},"id":17} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Emulation.setScriptExecutionDisabled' >>>>>>> >>>>>>> wasn't found"},"id":18} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Rendering.setShowViewportSizeOnResize' >>>>>>> >>>>>>> wasn't found"},"id":19} >>>>>>> >>>>>>> {"error":{"code":-32601,"message":"'Inspector.enable' wasn't >>>>>>> found"},"id":20} >>>>>>> >>>>>>> {"id":21,"result":{}} >>>>>>> >>>>>>> {"id":22,"result":{"breakpointId":"my_Screen1:13:39"," >>>>>>> locations":[{"scriptId":"22","lineNumber":13,"columnNumber":39}]}} >>>>>>> >>>>>>> Please let me know if this is of any help for you. >>>>>>> >>>>>>> regards, >>>>>>> Anoop R. S. >>>>>>> >>>>>>> On Monday, 8 May 2017 20:01:43 UTC+5:30, Harsha HS wrote: >>>>>>>> >>>>>>>> Hi, >>>>>>>> I am trying to use chrome protocol with chrom-devtools in front end. >>>>>>>> I am not receiving any message from frontend after id:8 >>>>>>>> >>>>>>>> message {"id":1,"method":"Runtime.enable"} >>>>>>>> message {"id":2,"method":"Debugger.enable"} >>>>>>>> message {"id":3,"method":"Debugger.setPauseOnExceptions","params" >>>>>>>> :{"state":"none"}} >>>>>>>> message {"id":4,"method":"Debugger.setAsyncCallStackDepth"," >>>>>>>> params":{"maxDepth":0}} >>>>>>>> message {"id":5,"method":"Profiler.enable"} >>>>>>>> message {"id":6,"method":"Profiler.setSamplingInterval","params": >>>>>>>> {"interval":100}} >>>>>>>> message {"id":7,"method":"Debugger.setBlackboxPatterns","params": >>>>>>>> {"patterns":[]}} >>>>>>>> message {"id":8,"method":"Runtime.runIfWaitingForDebugger"} >>>>>>>> >>>>>>>> For each of these messages, I am replying to frontend with {id:xx, >>>>>>>> result:{}}. >>>>>>>> >>>>>>>> Code is at https://github.com/hsharsha/v8inspector >>>>>>>> >>>>>>>> -Harsha >>>>>>>> >>>>>>> … >>>>>> >>>>> >>>>> On Thursday, 18 May 2017 13:35:15 UTC+5:30, Anoop R. S. wrote: >>>>>> >>>>>> Hi Harsha, >>>>>> We also developed a debugging framework for JS using V8 inspector. >>>>>> While doing that, in between we were also getting this error, but >>>>>> resolved >>>>>> it by debugging our code. >>>>>> I can send you the websocket messages that we are getting. Maybe that >>>>>> would help in some way. >>>>>> I haven't run your code provided at [https://github.com/hsharsha/v >>>>>> 8inspector]. Maybe if you need further help, I can check it. >>>>>> >>>>>> >>>>>> {"id":1,"method":"Log.enable"} >>>>>> >>>>>> {"id":2,"method":"Log.startViolationsReport","params":{" >>>>>> config":[{"name":"longTask","threshold":200},{"name":" >>>>>> longLayout","threshold":30},{"name":"blockedEvent","threshol >>>>>> d":100},{"name":"blockedParser","threshold":-1},{"name":" >>>>>> handler","threshold":150},{"name":"recurringHandler","threshold": >>>>>> 50}]}} >>>>>> >>>>>> {"id":3,"method":"Network.enable","params":{"maxTotalBufferS >>>>>> ize":10000000,"maxResourceBufferSize":5000000}} >>>>>> >>>>>> {"id":4,"method":"Page.enable"} >>>>>> >>>>>> {"id":5,"method":"Page.getResourceTree"} >>>>>> >>>>>> {"id":6,"method":"Runtime.enable"} >>>>>> >>>>>> {"id":7,"method":"Debugger.enable"} >>>>>> >>>>>> {"id":8,"method":"Debugger.setPauseOnExceptions","params":{" >>>>>> state":"none"}} >>>>>> >>>>>> {"id":9,"method":"Debugger.setAsyncCallStackDepth","params": >>>>>> {"maxDepth":0}} >>>>>> >>>>>> {"id":10,"method":"DOM.enable"} >>>>>> >>>>>> {"id":11,"method":"CSS.enable"} >>>>>> >>>>>> {"id":12,"method":"Target.setAutoAttach","params":{"autoAtta >>>>>> ch":true,"waitForDebuggerOnStart":true}} >>>>>> >>>>>> {"id":13,"method":"Profiler.enable"} >>>>>> >>>>>> {"id":14,"method":"Profiler.setSamplingInterval","params":{" >>>>>> interval":100}} >>>>>> >>>>>> {"id":15,"method":"ServiceWorker.enable"} >>>>>> >>>>>> {"error":{"code":-32601,"message":"'Log.enable' wasn't >>>>>> found"},"id":1} >>>>>> >>>>>> {"error":{"code":-32601,"message":"'Log.startViolationsReport' >>>>>> wasn't found"},"id":2} >>>>>> >>>>>> {"error":{"code":-32601,"message":"'Network.enable' wasn't >>>>>> found"},"id":3} >>>>>> >>>>>> {"error":{"code":-32601,"message":"'Page.enable' wasn't >>>>>> found"},"id":4} >>>>>> >>>>>> {"error":{"code":-32601,"message":"'Page.getResourceTree' wasn't >>>>>> found"},"id":5} >>>>>> >>>>>> {"method":"Runtime.executionContextCreated","params":{" >>>>>> context":{"id":1,"origin":"","name":""}}} >>>>>> >>>>>> {"id":6,"result":{}} >>>>>> >>>>>> {"method":"D >>>>>> >>>>> -- -- v8-users mailing list [email protected] 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
