On Wed, Aug 3, 2016 at 12:55 PM, Abhishek Singh <singhabhishek....@gmail.com> wrote: > >> On 03-Aug-2016, at 3:48 PM, Ben Noordhuis <i...@bnoordhuis.nl> wrote: >> >> On Wed, Aug 3, 2016 at 11:40 AM, Abhishek Singh >> <singhabhishek....@gmail.com> wrote: >>> Hi Ben, >>> >>> Apologies for not providing the background. I’m trying to leverage C++ API >>> to drive V8 JSON debugger for embedded V8 use case, not sure if leveraging >>> JS API to drive debugger would be of utility in this situation. Here is >>> high level workflow pipeline for this use case: >>> >>> * There is a Golang server that listens on some sockets and receives >>> json/base64 encoded docs >>> * Golang guy pipelines the docs to CGO to embedded C++ V8 >>> implementation(primarily extending some functionalities that JS provides by >>> default). >>> * Golang server gets http calls encapsulating different JSON based V8 >>> debugger request commands and(CGO <-> V8 communication happens) accordingly >>> execution of user supplied code to be executed by embedded v8 needs to >>> pause/continue etc >>> >>> ========= >>> >>> Based on this use case, I very likely need to leverage >>> v8::Debug::SetMessageHandler and v8::Debug::SendCommand apis to handle user >>> requests to enforce breakpoints/continue/evaluate etc. So I was hoping if >>> anyone could share sample standalone code on top of C++ V8 debugger api(if >>> they have it lying somewhere around). >> >> In that case perhaps you can look at test/cctest/test-debug.cc for >> inspiration? >> > > Yeah, I referred to it for initial implementation - at least I’m getting > response codes to requests properly. I’ll tell you current problem I’ve: > > * I’m asked V8 to setup breakpoint(line#2 column#0) on using JSON protocol > and I got success message as response - > > {"seq":1,"request_seq":579,"type":"response","command":"setbreakpoint","success":true,"body":{"type":"scriptId","breakpoint":1,"script_id":37,"line":2,"column":0,"actual_locations":[{"line":3,"column":2,"script_id":37}]},"refs":[],"running":true} > > Function against which this BP has seen setup looks something like this: > > 1 function OnUpdate(doc, meta) { > 2 log(meta.key); > 3 if (meta.type === “json”) { > 4 log(doc); > 5 } > 6 } > > > * Given that set breakpoint call returned success, I was expecting OnUpdate() > function to pause execution at the breakpoint when function is called > next(until I fire continue call). But what I observe “OnUpdate” continues > business as usual i.e. as if no BP has been set. > > Not sure what exactly I’m missing here. I suppose I might need to > AssignContext like it’s done in node[0] and probably fetch the Context under > which debug commands were setup inside MessageHandler[1] > > > [0]https://github.com/nodejs/node/blob/master/src/debug-agent.cc#L122-L123 > [1]https://github.com/nodejs/node/blob/master/src/debug-agent.cc#L315-L318
Quick sanity check: what does Debug.showBreakPoints() print for that function after setting the breakpoint? -- -- 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.