I can confirm that the update resolved the )load crashes I was seeing. Thank you! On May 4, 2014 12:07 AM, "Elias Mårtenson" <[email protected]> wrote:
> Actually, this one was being debugged last night, with the discussion > primarily being done off-list. > > Please let me know if there are still problems. > > Regards, > Elias > > > On 4 May 2014 09:27, David B. Lamkins <[email protected]> wrote: > >> Ah, I didn't realize I was so far behind. Thanks for the heads-up! :) >> >> On Sun, 2014-05-04 at 08:20 +0800, Elias Mårtenson wrote: >> > This was just fixed, actually. You might want to try with the latest >> > version. It should work now. >> > >> > Regards, >> > Elias >> > >> > On 4 May 2014 02:45, "David B. Lamkins" <[email protected]> wrote: >> > I was able to get a core dump of the segfault caused by >> > attempting to >> > )load an APL file with Emacs mode active. >> > >> > [dlamkins@morganthe ~]$ gdb `which apl` -c core.2134 >> > GNU gdb (GDB) Fedora 7.6.50.20130731-19.fc20 >> > Copyright (C) 2013 Free Software Foundation, Inc. >> > License GPLv3+: GNU GPL version 3 or later >> > <http://gnu.org/licenses/gpl.html> >> > This is free software: you are free to change and redistribute >> > it. >> > There is NO WARRANTY, to the extent permitted by law. Type >> > "show >> > copying" >> > and "show warranty" for details. >> > This GDB was configured as "x86_64-redhat-linux-gnu". >> > Type "show configuration" for configuration details. >> > For bug reporting instructions, please see: >> > <http://www.gnu.org/software/gdb/bugs/>. >> > Find the GDB manual and other documentation resources online >> > at: >> > <http://www.gnu.org/software/gdb/documentation/>. >> > For help, type "help". >> > Type "apropos word" to search for commands related to "word". >> > .. >> > Reading symbols from /usr/local/bin/apl...done. >> > [New LWP 2134] >> > [New LWP 2138] >> > [New LWP 2137] >> > [Thread debugging using libthread_db enabled] >> > Using host libthread_db library "/lib64/libthread_db.so.1". >> > Core was generated by `/usr/local/bin/apl --rawCIN --emacs'. >> > Program terminated with signal SIGSEGV, Segmentation fault. >> > #0 0x00007fd8c85b1098 in ?? () from /lib64/libgcc_s.so.1 >> > Missing separate debuginfos, use: debuginfo-install >> > blas-3.4.2-3.fc20.x86_64 glibc-2.18-12.fc20.x86_64 >> > lapack-3.4.2-3.fc20.x86_64 libgcc-4.8.2-7.fc20.x86_64 >> > libgfortran-4.8.2-7.fc20.x86_64 libgomp-4.8.2-7.fc20.x86_64 >> > libquadmath-4.8.2-7.fc20.x86_64 libstdc++-4.8.2-7.fc20.x86_64 >> > ncurses-libs-5.9-12.20130511.fc20.x86_64 >> > readline-6.2-8.fc20.x86_64 >> > (gdb) bt >> > #0 0x00007fd8c85b1098 in ?? () from /lib64/libgcc_s.so.1 >> > #1 0x00007fd8c85b1f99 in _Unwind_Backtrace () >> > from /lib64/libgcc_s.so.1 >> > #2 0x00007fd8c82e61e6 in backtrace () from /lib64/libc.so.6 >> > #3 0x00000000004448a0 in Backtrace::show ( >> > file=file@entry=0x533480 "main.cc", line=line@entry=122) >> > at Backtrace.cc:276 >> > #4 0x000000000047a72a in signal_SEGV_handler () at >> > main.cc:122 >> > #5 <signal handler called> >> > #6 0x00007fd8c1547730 in ?? () >> > #7 0x0000000000476307 in Input::get_user_line ( >> > prompt=0x80f230 <Workspace::the_workspace+527600>) at >> > Input.cc:223 >> > #8 0x00000000004765f4 in Input::get_line () at Input.cc:150 >> > #9 0x0000000000461f2d in Command::process_line () at >> > Command.cc:61 >> > #10 0x0000000000522e9d in Workspace::immediate_execution >> > (exit_on_error=false) >> > at Workspace.cc:129 >> > #11 0x00000000004352d5 in main (argc=3, _argv=<optimized out>) >> > at >> > main.cc:466 >> > (gdb) quit >> > [dlamkins@morganthe ~]$ >> > >> > This is with svn 235. >> > >> > Input.cc:223 is the (*start_input)() call: >> > >> > const unsigned char * >> > Input::get_user_line(const UCS_string * prompt) >> > { >> > if (start_input) (*start_input)(); >> > ... >> > >> > which, I think (determined by code inspection; not gdb), >> > points to >> > active_disable in emacs.cc. That, in turn, ultimately invokes >> > set_active(): >> > >> > void set_active( bool v ) >> > { >> > pthread_mutex_lock( &apl_main_lock ); >> > if( !apl_active && !v ) { >> > std::cerr << "Unlocking while the lock is unlocked" << >> > std::endl; >> > abort(); >> > } >> > if( v ) { >> > while( apl_active ) { >> > pthread_cond_wait( &apl_main_cond, &apl_main_lock >> > ); >> > } >> > } >> > apl_active = v; >> > pthread_cond_broadcast( &apl_main_cond ); >> > pthread_mutex_unlock( &apl_main_lock ); >> > } >> > >> > >> > >> >> >> >
