Menu

#5 tahoma.ttf required, but not part of distribution

open
nobody
None
5
2009-06-21
2009-06-21
Anonymous
No

tahoma.ttf is required, but not distributed with liquidpcb. If liquidpcb is started, the hello-screen shows up, but any action will cause the program to terminate (_T("") seems to cause the trap, is gettext not configured correctly?):

$ ./liquidpcb
terminate called after throwing an instance of 'std::runtime_error'
what(): FT_New_Face failed (there is probably a problem with your font file)
Aborted

After copying /usr/share/wine/fonts/tahoma.ttf into the liquidpcb working directory, it dies with an 'illegal instruction exception' in PCB_Window::AddMenu():

$ gdb ./liquidpcb
GNU gdb 6.8-debian
Copyright (C) 2008 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 "i486-linux-gnu"...
(gdb) r
Starting program: /tmp/liquidpcb/trunk/binaries/debug/liquidpcb
[Thread debugging using libthread_db enabled]
[New Thread 0xb6a8e760 (LWP 14189)]

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0xb6a8e760 (LWP 14189)]
0x08106e4f in PCB_Window::AddMenu (this=0x888e7e0, f=
{<wxStringBase> = {static npos = 4294967295, m_pchData = 0xbfa1d06c}, <No data fields>},
messageName=
{<wxStringBase> = {static npos = 4294967295, m_pchData = 0xbfa1d068}, <No data fields>},
positionString=
{<wxStringBase> = {static npos = 4294967295, m_pchData = 0xbfa1d064}, <No data fields>})
at /tmp/liquidpcb/trunk/src/pcb_window.cpp:572
572 LiquidMessage message(_T(""), 0);
(gdb) bt
#0 0x08106e4f in PCB_Window::AddMenu (this=0x888e7e0, f=
{<wxStringBase> = {static npos = 4294967295, m_pchData = 0xbfa1d06c}, <No data fields>},
messageName=
{<wxStringBase> = {static npos = 4294967295, m_pchData = 0xbfa1d068}, <No data fields>},
positionString=
{<wxStringBase> = {static npos = 4294967295, m_pchData = 0xbfa1d064}, <No data fields>})
at /tmp/liquidpcb/trunk/src/pcb_window.cpp:572
#1 0x08106efc in PCB_Window::InitMenus (this=0x888e7e0)
at /tmp/liquidpcb/trunk/src/pcb_window.cpp:582
#2 0x08108cfd in PCB_Window (this=0x888e7e0, parent=0x86b1fb0)
at /tmp/liquidpcb/trunk/src/pcb_window.cpp:101
#3 0x081027d9 in MainFrame::CreateNewPCB (this=0x86ad0b8, numLayers=4, thickness=1.60000002)
at /tmp/liquidpcb/trunk/src/liquid.cpp:319
#4 0x081029c8 in LiquidSystemFunctions::CreateProject (this=0x81c5868, message=@0x86df840,
tail=@0xbfa1d474, messageInt=0) at /tmp/liquidpcb/trunk/src/liquid.cpp:489
#5 0x08104809 in boost::_mfi::mf3<int, LiquidSystemFunctions, LiquidMessage&, wxString&, int>::operator() (this=0x87e55c0, p=0x81c5868, a1=@0x86df840, a2=@0xbfa1d474, a3=0)
at /usr/include/boost/bind/mem_fn_template.hpp:384
#6 0x081048bd in boost::_bi::list4<boost::_bi::value<LiquidSystemFunctions*>, boost::arg<1> (*)(), boost::arg<2> (*)(), boost::arg<3> (*)()>::operator()<int, boost::_mfi::mf3<int, LiquidSystemFunctions, LiquidMessage&, wxString&, int>, boost::_bi::list3<LiquidMessage&, wxString&, int&> > (
this=0x87e55c8, f=@0x87e55c0, a=@0xbfa1d3cc) at /usr/include/boost/bind.hpp:402
#7 0x08104918 in boost::_bi::bind_t<int, boost::_mfi::mf3<int, LiquidSystemFunctions, LiquidMessage&, wxString&, int>, boost::_bi::list4<boost::_bi::value<LiquidSystemFunctions*>, boost::arg<1> (*)(), boost::arg<2> (*)(), boost::arg<3> (*)()> >::operator()<LiquidMessage, wxString, int> (
this=0x87e55c0, a1=@0x86df840, a2=@0xbfa1d474, a3=@0xbfa1d41c)
at /usr/include/boost/bind/bind_template.hpp:116
#8 0x08104946 in boost::detail::function::function_obj_invoker3<boost::_bi::bind_t<int, boost::_mfi::mf3<int, LiquidSystemFunctions, LiquidMessage&, wxString&, int>, boost::_bi::list4<boost::_bi::value<LiquidSystemFunctions*>, boost::arg<1> (*)(), boost::arg<2> (*)(), boost::arg<3> (*)()> >, int, LiquidMessage&, wxString&, int>::invoke (function_obj_ptr=@0x87e55c0, a0=@0x86df840, a1=@0xbfa1d474,
a2=0) at /usr/include/boost/function/function_template.hpp:137
#9 0x0813523f in boost::function3<int, LiquidMessage&, wxString&, int, std::allocator<void> >::operator() (this=0x87e55bc, a0=@0x86df840, a1=@0xbfa1d474, a2=0)
at /usr/include/boost/function/function_template.hpp:825
#10 0x08133133 in LiquidMessageDispatcher::HandleMessageQueue (this=0x81c5820)
at /tmp/liquidpcb/trunk/src/liquid_message.cpp:195
#11 0x0813322e in LiquidMessageDispatcher::ReceiveMessage (this=0x81c5820, message=@0x86df840)
at /tmp/liquidpcb/trunk/src/liquid_message.cpp:224
#12 0x080e9693 in HTMLControl::OnLinkClicked (this=0x86df600, link=@0xbfa1d564)
at /tmp/liquidpcb/trunk/src/help_screen.cpp:286
#13 0xb7faf34b in wxHtmlWindow::OnHTMLLinkClicked () from /usr/lib/libwx_gtk2u_html-2.8.so.0
#14 0xb7fa76d5 in wxHtmlCell::OnMouseClick () from /usr/lib/libwx_gtk2u_html-2.8.so.0
#15 0xb7fa359c in wxHtmlCell::ProcessMouseClick () from /usr/lib/libwx_gtk2u_html-2.8.so.0
#16 0xb7fb622c in wxHtmlWindowMouseHelper::OnCellClicked () from /usr/lib/libwx_gtk2u_html-2.8.so.0
#17 0xb7fb035c in wxHtmlWindowMouseHelper::HandleMouseClick ()
from /usr/lib/libwx_gtk2u_html-2.8.so.0
#18 0xb7fb49ab in wxHtmlWindow::OnMouseUp () from /usr/lib/libwx_gtk2u_html-2.8.so.0
#19 0xb7af0231 in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#20 0xb7b8f49a in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.8.so.0
#21 0xb7b906b4 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#22 0xb7b907bb in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#23 0xb7b90749 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
---Type <return> to continue, or q <return> to quit---
#24 0xb7e82483 in wxScrollHelperEvtHandler::ProcessEvent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#25 0xb7d3f67b in wxWindow::GTKProcessEvent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#26 0xb7d44afe in ?? () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#27 0xb7339526 in _gtk_marshal_BOOLEAN__BOXED (closure=0x86c5fb8, return_value=0xbfa1da30,
n_param_values=2, param_values=0x8829400, invocation_hint=0xbfa1da1c, marshal_data=0xb7d44a00)
at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmarshalers.c:84
#28 0xb7005c7b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#29 0xb701be57 in ?? () from /usr/lib/libgobject-2.0.so.0
#30 0xb701d34f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#31 0xb701d936 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#32 0xb74542ae in gtk_widget_event_internal (widget=0x86b01c8, event=0x867d640)
at /build/buildd/gtk+2.0-2.16.1/gtk/gtkwidget.c:4761
#33 0xb7331f7c in IA__gtk_propagate_event (widget=0x86b01c8, event=0x867d640)
at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmain.c:2396
#34 0xb7333327 in IA__gtk_main_do_event (event=0x867d640)
at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmain.c:1601
#35 0xb71c034a in gdk_event_dispatch (source=0x867fcf0, callback=0, user_data=0x0)
at /build/buildd/gtk+2.0-2.16.1/gdk/x11/gdkevents-x11.c:2364
#36 0xb6f67b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0xb6f6b0eb in ?? () from /usr/lib/libglib-2.0.so.0
#38 0xb6f6b5ba in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#39 0xb73337d9 in IA__gtk_main () at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmain.c:1205
#40 0xb7d30215 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#41 0xb7dc6d4e in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#42 0xb7dc6921 in wxAppBase::OnRun () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#43 0xb7b29daa in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
#44 0xb7b29fa7 in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
#45 0x081031be in main (argc=Cannot access memory at address 0x0
) at /tmp/liquidpcb/trunk/src/liquid.cpp:94
(gdb)

Discussion

  • Nobody/Anonymous

    the note '(_T("") seems to cause the trap, is gettext not configured
    correctly?)' is written in the wrong paragraph, it should be related to the illegal instruction in PCB_Window::AddMenu().

     
  • Nobody/Anonymous

    -- These compiler warnings seem related to this issue:

    [ 34%] Building CXX object src/CMakeFiles/liquidpcb.dir/pcb_window.cpp.o
    /tmp/liquidpcb/trunk/src/pcb_window.cpp: In member function ‘void PCB_Window::AddMenu(wxString, wxString, wxString)’:
    /tmp/liquidpcb/trunk/src/pcb_window.cpp:573: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime
    /tmp/liquidpcb/trunk/src/pcb_window.cpp:573: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime
    /tmp/liquidpcb/trunk/src/pcb_window.cpp:573: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime

     
  • Nobody/Anonymous

    ## All these problems occured in a build with gcc/g++ version 4.3.3:

    $ g++ -v
    Using built-in specs.
    Target: i486-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.3-5ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
    Thread model: posix
    gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)

     
  • Nobody/Anonymous

    wxStrings have to be passed as C-Strings for vararg calls, this patch resolves the problem:

    $ svn diff trunk/src/pcb_window.cpp
    Index: trunk/src/pcb_window.cpp
    ===================================================================
    --- trunk/src/pcb_window.cpp (revision 178)
    +++ trunk/src/pcb_window.cpp (working copy)
    @@ -565,13 +565,12 @@
    */
    }

    -
    void PCB_Window::AddMenu(wxString f, wxString messageName, wxString positionString)
    {
    wxString s;
    LiquidMessage message(_T(""), 0);

    - s.Printf(_T("mesg://liquidpcb.interface.screen.hexmenu.add/MenuPosition/%s/TextureFilename/icons=%s/ActivationMessage/%s/"), positionString, f, messageName);
    + s.Printf(_T("mesg://liquidpcb.interface.screen.hexmenu.add/MenuPosition/%s/TextureFilename/icons=%s/ActivationMessage/%s/"), positionString.c_str(), f.c_str(), messageName.c_str());
    message.SetFromURI(s);
    liquidMessageDispatcher.ReceiveMessage(message);
    }

     
  • Nobody/Anonymous

    The patch has been uploaded to the patch tracker, ID 2809778

     

Log in to post a comment.

MongoDB Logo MongoDB