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.

Reply via email to