Created
December 22, 2020 15:29
-
-
Save thierry-FreeBSD/d87720858a646c557e5cd7b196bcd3b1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Extra tables GNU and Hurd build and install fine on FreeBSD, pinball finds them, but they cannot be loaded: | |
MenuSub::perform() load table | |
MenuSub::draw() load table | |
MenuSub::draw() load table | |
MenuSub::draw() load table | |
No current table name! (the first time is normal...) | |
SignalSender::clear() | |
loaded texture: /usr/local/share/pinball/gnu/tiles3.png | |
size 256 256 | |
loaded texture: /usr/local/share/pinball/gnu/gnu.png | |
size 256 256 | |
loaded texture: /usr/local/share/pinball/gnu/gnu2b.png | |
size 256 256 | |
loaded texture: /usr/local/share/pinball/gnu/tiles.png | |
size 256 256 | |
loaded texture: /usr/local/share/pinball/gnu/tiles2.png | |
size 256 256 | |
+Loader::loadModule | |
Loader::loadFile caught exception ************ | |
Could not allocate behavior object | |
When loading file: /usr/local/share/pinball/gnu/pinball.pbl | |
At line: 26046 | |
Loader::loadFile ***************************** | |
Error loading level: gnu | |
Try reinstalling the game | |
SignalSender::clear() | |
MenuSub::draw() main menu | |
At line 26046 of /usr/local/share/pinball/gnu/pinball.pbl, it refers to: | |
libModuleGnu.la | |
This file exists, with the corresponding library: | |
-rw-r--r-- 1 root wheel 56872 22 déc. 16:11 /usr/local/lib/pinball/libModuleGnu.a | |
-rwxr-xr-x 1 root wheel 960 22 déc. 16:11 /usr/local/lib/pinball/libModuleGnu.la | |
lrwxr-xr-x 1 root wheel 21 22 déc. 16:11 /usr/local/lib/pinball/libModuleGnu.so -> libModuleGnu.so.0.0.0 | |
lrwxr-xr-x 1 root wheel 21 22 déc. 16:11 /usr/local/lib/pinball/libModuleGnu.so.0 -> libModuleGnu.so.0.0.0 | |
-rwxr-xr-x 1 root wheel 32200 22 déc. 16:11 /usr/local/lib/pinball/libModuleGnu.so.0.0.0 | |
This libtool file seems OK, libModuleProfessor and libModuleTux work fine, but not the extra ones. |
Hello,
Here is a debug session with the Hurd table: I don't see any notable difference.
GNU gdb (GDB) 10.1 [GDB v10.1 for FreeBSD]
Copyright (C) 2020 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-portbld-freebsd12.1".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://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/pinball...
(gdb) b Table::loadLevel
Breakpoint 1 at 0x28f7d2: file Table.cpp, line 133.
(gdb) r
Starting program: /usr/local/bin/pinball
[New LWP 101696 of process 34014]
[New LWP 101699 of process 34014]
[New LWP 101707 of process 34014]
[New LWP 102152 of process 34014]
[New LWP 102153 of process 34014]
[New LWP 102154 of process 34014]
Thread 1 hit Breakpoint 1, Table::loadLevel (this=0x802a38ce0, engine=0x8010c6000, subdir=0x8010ffd74 "hurd") at Table.cpp:133
133 this->clear(engine);
(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb)
�[K(gdb) n
134 m_sTableName = string(subdir);
(gdb)
137 Config::getInstance()->setSubDir(subdir);
(gdb) p subdir
$1 = 0x8010ffd74 "hurd"
(gdb) n
138 string datadir(Config::getInstance()->getDataSubDir());
(gdb) n
139 string filename = datadir + string("/pinball.pbl");
(gdb) p datadir
$2 = "/usr/local/share/pinball/hurd"
(gdb) n
140 Loader::getInstance()->clearSignalVariable();
(gdb)
141 if (Loader::getInstance()->loadFile(filename.c_str(), engine) != 0) {
(gdb) s
Loader::getInstance () at Loader.cpp:80
80 if (p_Loader == NULL) {
(gdb) n
83 return p_Loader;
(gdb)
[LWP 102154 of process 34014 exited]
Table::loadLevel (this=0x802a38ce0, engine=0x8010c6000, subdir=0x8010ffd74 "hurd") at Table.cpp:142
142 cerr << "Error loading level: " << m_sTableName << endl;
(gdb)
143 cerr << "Try reinstalling the game"
(gdb)
144 << endl;
(gdb)
145 this->clear(engine);
(gdb)
146 return -1;
(gdb)
182 }
(gdb)
MyMenuLoad::perform (this=0x8010ffd50) at Pinball.cpp:393
393 p_Engine->clearScreen();
(gdb)
394 if (p_Texture != NULL) p_Engine->drawSplash(p_Texture);
(gdb)
395 p_EmFont->printRowCenter("ERROR", 10);
(gdb)
396 p_Engine->swap();
(gdb) c
Continuing.
[LWP 101699 of process 34014 exited]
[LWP 102153 of process 34014 exited]
[LWP 101707 of process 34014 exited]
[LWP 102152 of process 34014 exited]
pinball: exit: 0
[LWP 101696 of process 34014 exited]
[Inferior 1 (process 34014) exited normally]
(gdb) q
Patch adoptware/pinball-table-gnu@8ee41d3?branch=8ee41d30dd8a76b3b0cb93220cc2dd08a90a7656&diff=unified applied, but it still fails to load the table:
GNU gdb (GDB) 10.1 [GDB v10.1 for FreeBSD]
Copyright (C) 2020 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-portbld-freebsd12.1".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://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/pinball...
(gdb) b Table::loadLevel
Breakpoint 1 at 0x28f7d2: file Table.cpp, line 133.
(gdb) r
Starting program: /usr/local/bin/pinball
[New LWP 101924 of process 43398]
[New LWP 102065 of process 43398]
[New LWP 102085 of process 43398]
[New LWP 102088 of process 43398]
[New LWP 102095 of process 43398]
[New LWP 102102 of process 43398]
Thread 1 hit Breakpoint 1, Table::loadLevel (this=0x802a38ce0, engine=0x8010c6000, subdir=0x8010ffc94 "gnu") at Table.cpp:133
133 this->clear(engine);
(gdb) n
134 m_sTableName = string(subdir);
(gdb) b subdir
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) p subdir
$1 = 0x8010ffc94 "gnu"
(gdb) n
137 Config::getInstance()->setSubDir(subdir);
(gdb) s
Config::getInstance () at Config.cpp:48
48 if (p_Instance == NULL) {
(gdb)
52 return p_Instance;
(gdb)
Config::setSubDir (this=0x8010b5000, ch=0x8010ffc94 "gnu") at Config.cpp:96
96 m_sSubDir = string(ch);
(gdb) p ch
$2 = 0x8010ffc94 "gnu"
(gdb) n
97 m_sDataSubDir = m_sDataDir + "/" + m_sSubDir;
(gdb) p m_sDataDir
$3 = "/usr/local/share/pinball"
(gdb) n
98 }
(gdb) p m_sDataSubDir
$4 = "/usr/local/share/pinball/gnu"
(gdb) n
Table::loadLevel (this=0x802a38ce0, engine=0x8010c6000, subdir=0x8010ffc94 "gnu") at Table.cpp:138
138 string datadir(Config::getInstance()->getDataSubDir());
(gdb) s
Config::getInstance () at Config.cpp:48
48 if (p_Instance == NULL) {
(gdb)
52 return p_Instance;
(gdb)
Config::getDataSubDir (this=0x8010b5000) at ../base/Config.h:85
85 inline const char * getDataSubDir() { return m_sDataSubDir.c_str(); };
(gdb)
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::c_str (this=0x8010b5078) at /usr/include/c++/v1/string:1240
1240 const value_type* c_str() const _NOEXCEPT {return data();}
(gdb)
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::data (this=0x8010b5078) at /usr/include/c++/v1/string:1242
1242 const value_type* data() const _NOEXCEPT {return _VSTD::__to_address(__get_pointer());}
(gdb)
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__get_pointer (this=0x8010b5078) at /usr/include/c++/v1/string:1514
1514 {return __is_long() ? __get_long_pointer() : __get_short_pointer();}
(gdb) n
Table::loadLevel (this=0x802a38ce0, engine=0x8010c6000, subdir=0x8010ffc94 "gnu") at Table.cpp:139
139 string filename = datadir + string("/pinball.pbl");
(gdb) p datadir
$5 = "/usr/local/share/pinball/gnu"
(gdb) n
140 Loader::getInstance()->clearSignalVariable();
(gdb) s
Loader::getInstance () at Loader.cpp:80
80 if (p_Loader == NULL) {
(gdb)
81 p_Loader = new Loader();
(gdb)
operator new (size=136) at /usr/src/contrib/llvm-project/libcxx/src/new.cpp:64
64 if (size == 0)
(gdb)
67 while ((p = ::malloc(size)) == 0)
(gdb) n
81 return p;
(gdb)
Loader::getInstance () at Loader.cpp:82
82 }
(gdb)
83 return p_Loader;
(gdb)
Table::loadLevel (this=0x802a38ce0, engine=0x8010c6000, subdir=0x8010ffc94 "gnu") at Table.cpp:141
141 if (Loader::getInstance()->loadFile(filename.c_str(), engine) != 0) {
(gdb)
[LWP 102102 of process 43398 exited]
142 cerr << "Error loading level: " << m_sTableName << endl;
(gdb) c
Continuing.
[LWP 102065 of process 43398 exited]
[LWP 102085 of process 43398 exited]
[LWP 102088 of process 43398 exited]
[LWP 102095 of process 43398 exited]
pinball: exit: 0
[LWP 101924 of process 43398 exited]
[Inferior 1 (process 43398) exited normally]
(gdb) q
can you show backtrace for hurd table at:
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
May we compare with hurd table?
adoptware/pinball-table-hurd#11