Awesome! This is exactly what I needed: emscripten_get_callstack It works perfectly.
Thanks! On Tuesday, November 3, 2015 at 2:38:30 PM UTC-5, Alon Zakai wrote: > > There are some logging and callstack methods in the C API, > http://kripken.github.io/emscripten-site/docs/api_reference/emscripten.h.html?#c.emscripten_log > > On Tue, Nov 3, 2015 at 11:14 AM, Robert Goulet <[email protected] > <javascript:>> wrote: > >> Indeed it works elsewhere in the code. But it still doesn't work at the >> other location, and basically the only difference is that it is closer to >> exit(1) call. Perhaps the code to print to the console can't be executed >> when its too close to the exit function? I really don't know why, but >> whatever. >> >> Is there a cleaner way to retrieve the callstack as char* from >> emscripten other than using >> emscripten_run_script_string("Module.stackTrace();") ? When I do that, >> the call to emscripten_run_script_string and stackTrace is added to the >> callstack, and preferably I would want only the callstack from the location >> where I ask for it. If its not possible then its not a huge problem. >> >> On Tuesday, November 3, 2015 at 12:51:24 PM UTC-5, Alon Zakai wrote: >>> >>> Does just doing console.log('hello world') work when you directly write >>> that in the web console? >>> >>> If that works, you can debug this by finding your console.log in the >>> emscripten output. Perhaps put an alert() right before it. Maybe somehow >>> control flow isn't getting there? >>> >>> On Tue, Nov 3, 2015 at 9:41 AM, Robert Goulet <[email protected]> >>> wrote: >>> >>>> No error reported. I am looking at the browser's web console, not the >>>> stdout text area on the page. I did not disable any web console logging, >>>> and also I'm guessing it wouldn't print anything if it was disabled? it >>>> does appear when I use C++ printf. >>>> >>>> This is a build done with -O3, no debugging information, if that >>>> matters. >>>> >>>> On Tuesday, November 3, 2015 at 12:37:49 PM UTC-5, Alon Zakai wrote: >>>>> >>>>> Do you get an error? That works for me. For example, this prints out >>>>> a stack trace: >>>>> >>>>> #include <emscripten.h> >>>>> int main() { >>>>> EM_ASM( >>>>> console.log('Callstack:' + stackTrace()); >>>>> ); >>>>> } >>>>> >>>>> Are you looking in the stdout area on the page, or the browser's web >>>>> console? Also, the web console has options to disable logging showing up, >>>>> you might have those disabled? >>>>> >>>>> On Tue, Nov 3, 2015 at 7:45 AM, Robert Goulet <[email protected]> >>>>> wrote: >>>>> >>>>>> I tried calling stackTrace and it didn't work. Is there special >>>>>> build flags we need to pass to enable it? >>>>>> >>>>>> Here is what I tried: >>>>>> >>>>>> EM_ASM( >>>>>> console.log('Callstack:' + stackTrace()); >>>>>> ); >>>>>> >>>>>> When I call C++ printf I see stuff in the console. But using JS >>>>>> console.log never prints anything. Why? >>>>>> >>>>>> >>>>>> On Wednesday, October 21, 2015 at 4:58:29 PM UTC-4, Alon Zakai wrote: >>>>>>> >>>>>>> Yeah, emscripten has jsStackTrace() which returns the JS stack, and >>>>>>> stackTrace() which does the same with c++ names demangled. >>>>>>> >>>>>>> On Wed, Oct 21, 2015 at 1:52 PM, Brion Vibber <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> You should be able to get a call stack by throwing a JS exception; >>>>>>>> if using sufficient debug or profiling options in your build you >>>>>>>> should get >>>>>>>> useful function names out of that, which is a huge help even if the >>>>>>>> full >>>>>>>> debugger is not attached. >>>>>>>> >>>>>>>> Should be pretty easy to attach a JS library function to do that. >>>>>>>> >>>>>>>> -- brion >>>>>>>> >>>>>>>> On Wed, Oct 21, 2015 at 1:48 PM, Robert Goulet < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Is there any easier way to trace down code, even without checked >>>>>>>>> variables content, just to see the callstack? >>>>>>>>> >>>>>>>>> On Wednesday, October 21, 2015 at 3:58:55 PM UTC-4, Alon Zakai >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> In my experience very large projects are indeed hard to get >>>>>>>>>> running in browser debuggers. They just haven't been optimized for >>>>>>>>>> that >>>>>>>>>> size code yet, I think. >>>>>>>>>> >>>>>>>>>> I do most of my debugging using dump(), which writes to stdout in >>>>>>>>>> the console firefox was started from. (You need to set >>>>>>>>>> browser.dom.window.dump.enabled in about:config for that to work.) >>>>>>>>>> Or >>>>>>>>>> alert() when I want things to be paused. Or just console.log() when >>>>>>>>>> the >>>>>>>>>> amount of output is small. >>>>>>>>>> >>>>>>>>>> On Wed, Oct 21, 2015 at 11:02 AM, Robert Goulet < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi all, >>>>>>>>>>> >>>>>>>>>>> I'm trying to setup debugging in-browser, but it doesn't work >>>>>>>>>>> for me, and I am wondering if it's just related to the size of my >>>>>>>>>>> project? >>>>>>>>>>> Does anyone successfully used breakpoints in code built with -g4 in >>>>>>>>>>> Firefox >>>>>>>>>>> Nightly? Everytime I add a breakpoint, it just freeze Firefox and I >>>>>>>>>>> have to >>>>>>>>>>> kill it. Please share your experience and tips. Thanks! >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "emscripten-discuss" 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. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "emscripten-discuss" 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. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "emscripten-discuss" 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. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "emscripten-discuss" 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. >>>>>> >>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "emscripten-discuss" 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. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" 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.
