Any chance you can make it possible to run just the emscripten part of the build process? E.g. running 'make' immediately fails on not having 'bison' installed. Also I'd rather not install grunt and other things globally.
- Alon On Fri, Dec 12, 2014 at 4:06 PM, Arve Knudsen <arve.knud...@gmail.com> wrote: > > I forgot to mention that before running grunt, you must've installed it > globally (npm install -g grunt-cli) and then run 'npm install' within the > 'js' directory. > > Arve > > On Sat, Dec 13, 2014 at 12:56 AM, Arve Knudsen <arve.knud...@gmail.com> > wrote: > >> Hi >> >> I've built ChucK with -g4 (thus producing a sourcemap) and -s >> SAFE_HEAP=3, and unsafe memory access is detected while executing ChucK. >> However, I am unable to debug the segfault and could use your help. I tell >> Chrome to halt on exceptions, and when exception halts on the segfault, a >> stack trace is produced that looks as follows: >> >> invoke_iiiii (chuck.js:9199) >> _executeCode (__tree:274) >> asm._executeCode (chuck_emit.cpp:915) >> ccallFunc (chuck.js:534) >> (anonymous function) (whole.html:1) >> jQuery.event.dispatch (jquery-1.10.2.js:5095) >> jQuery.event.add.elemData.handle (jquery-1.10.2.js:4766) >> >> However, this stacktrace is of little use since it really doesn't make >> much sense. When I click on the asm._executeCode frame, the debugger enters >> the C++ function emit_engine_emit_do_while (line 915 of chuck.emit.cpp). >> Said line looks like this: >> >> while( emit->code->stack_cont.size() && emit->code->stack_cont.back() >> ) >> >> First of all, there's no correspondence betwen this function and the name >> of the stack frame ('asm._executeCode'). Second, when I click on the next >> frame, it resolves to the function __tree_balance_after_insert (of file >> '__tree'). This doesn't make much sense does it?? >> >> When I let execution continue after the exception, a completely different >> looking traceback is printed to the console: >> >> Uncaught abort() at Error >> at jsStackTrace ( >> http://localhost:8000/examples/basic/chuck.js:1049:13) >> at stackTrace ( >> http://localhost:8000/examples/basic/chuck.js:1066:22) >> at abort (http://localhost:8000/examples/basic/chuck.js:561343:25 >> ) >> at SAFE_HEAP_LOAD ( >> http://localhost:8000/examples/basic/chuck.js:429:87) >> at _strlen ( >> http://localhost:8000/examples/basic/chuck.js:552513:43) >> at Array.__ZNSt3__111char_traitsIcE6lengthEPKc >> [std::__1::char_traits<char>::length(char const*)] ( >> http://localhost:8000/examples/basic/chuck.js:541966:7) >> at Object.dynCall_ii ( >> http://localhost:8000/examples/basic/chuck.js:553175:74) >> at invoke_ii ( >> http://localhost:8000/examples/basic/chuck.js:8873:32) >> at >> Array.__ZN12_GLOBAL__N_19sporkCodeEP14Chuck_CompilerP8Chuck_VMPKcS5_ >> [(anonymous namespace)::sporkCode(Chuck_Compiler*, Chuck_VM*, char const*, >> char const*)] (http://localhost:8000/examples/basic/chuck.js:256286:8) >> at Object.dynCall_iiiii ( >> http://localhost:8000/examples/basic/chuck.js:551097:77) >> >> How can I debug this exception?? Please help. >> >> If you like, you can reproduce by: >> 1. Check out https://github.com/aknuds1/chuck.git >> 2. cd chuck >> 3. pushd src && make -j8 CHUCK_DEBUG_LEVEL=4 CHUCK_EM_SAFEHEAP=3 >> emscripten && popd && pushd js && grunt >> 4. python -m SimpleHTTPServer >> 5. Open http://localhost:8000/examples/basic/whole.html in Chrome (evt. >> some other browser) >> 6. Open the Developer Tools >> 7. Enable 'Pause on exceptions' >> 8. Click the 'Play' button >> >> Thanks, >> Arve >> >> >> >> >> > -- > 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 emscripten-discuss+unsubscr...@googlegroups.com. > 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 emscripten-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.