GemRB

IRIX and IRIX software discussion including open source and commerical offerings.
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
necron2600
Posts: 263
Joined: Tue May 26, 2015 10:38 pm
Location: Boston

Re: GemRB

Unread postby necron2600 » Mon Jan 02, 2017 6:39 pm

FYI, performance is good.. very quick on a 600mhz Octane.

Segfaults seem to not be so random for me...

Using a saved game that started right at candlekeep inn in BG1.. very begining where you are right outside the candlekeep inn door.

If I talk to the guard moving around right outside candlekeep inn door.. it segfaults. Every time.

If I go to the building way on the north side of the map and enter.. where a guy in the building walks over and talks (if I remember correctly.. he attacks you too).. it segfaults every time before the dialog is initiated. .

However, I can go into the candlekeep inn building and talk to some people in that room just fine with dialogs (inn keepr's name is Winthrop) without fail. Other people in the far back it also seg faults every time consistently.

User avatar
dexter1
Moderator
Moderator
Posts: 2737
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: GemRB

Unread postby dexter1 » Tue Jan 03, 2017 12:57 am

Thanks necro for giving it a spin. What audio backend are you using?

In Linux there are some memory leaks when using SDL, I'm not sure if the segfaults are from SDL or gemrb.
I'm curious if you can attempt a Debug version build with MIPSPro. This way you can pinpoint the segfaults and call stack in BG1 (don't have it btw) so Lynx can take a look at it.
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:

User avatar
necron2600
Posts: 263
Joined: Tue May 26, 2015 10:38 pm
Location: Boston

Re: GemRB

Unread postby necron2600 » Tue Jan 03, 2017 4:41 pm

Where (or what CD?) can I find dbx in order to debug an app or core file? Right now I can only use gdb.. not sure if that works well with MIPSpro compiled code?

Your compiled version has working sound for me:
In the cfg file:
AudioDriver = sdlaudio
I did try with it set to none, but nothing changed as far as the seg faults.

Thanks to your latest diffs.. I can compile gemrb with MIPSPro without all the crazyness I was getting before.
My compiled version does not have sound though. But it still crashes in the same spots.
Regarding my compiling.. I am not sure how you are able to compile yours without the last diff I added to this thread?
In particular in the very begining:

[octane]:/storage/packaging-PENDING/gemrb-mipspro/gemrb-dexter/git-head/gemrb/build $ gmake
Scanning dependencies of target gemrb_core
[ 0%] Building CXX object gemrb/core/CMakeFiles/gemrb_core.dir/ActorMgr.cpp.o
[ 1%] Building CXX object gemrb/core/CMakeFiles/gemrb_core.dir/Ambient.cpp.o
cc-1293 CC: ERROR File = /storage/packaging-PENDING/gemrb-mipspro/gemrb-dexter/git-head/gemrb/gemrb/includes/Predicates.h, Line = 51
Pure specifier ("= 0") is allowed only on virtual functions.

bool operator()(PT param) const=0;

I have to add 'variable' before bool and it compiles.. however almost every compile item gives a WARNING:
function "GemRB::VoidCallback::operator()()" is hidden by
"GemRB::Callback<T>::operator()" -- virtual function override
intended?

virtual bool operator()(T target)=0;

So not sure on the impact of that...

I compiled with debugging enabled "-g" and also enabled DEBUG in gemrb:
Only output from gemrb when i click on the guard right in front of the inn.. my character moves over to him and then.. bam.. seg fault:
[GameScript]: Displaying string on: none
[ResourceManager]: Found 'watch.dlg' in 'chitin.key'.
[ResourceManager]: Found 'spell.ids' in 'chitin.key'.
Segmentation fault

Same with the guy in the house on top/north of the map. Guy comes over to me then bam.. seg fault:
[GameScript]: Displaying string on: none
[ResourceManager]: Found 'shank.dlg' in 'chitin.key'.
Segmentation fault

####
gdb on the core file (gemrb compiled with debug -g )
I am not sure if gdb can work properly with mipspro compiled code??

Code: Select all

ls from /usr/local/lib/gemrb/plugins/MOSImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/MOSImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/MUSImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/MUSImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/MVEPlayer.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/MVEPlayer.so
Reading symbols from /usr/local/lib/gemrb/plugins/NullSound.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/NullSound.so
Reading symbols from /usr/local/lib/gemrb/plugins/NullSource.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/NullSource.so
Reading symbols from /usr/local/lib/gemrb/plugins/OGGReader.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/OGGReader.so
Reading symbols from /usr/nekoware/lib/libvorbisfile.so.4...done.
Loaded symbols for /usr/nekoware/lib/libvorbisfile.so.4
Reading symbols from /usr/nekoware/lib/libvorbis.so.1...done.
Loaded symbols for /usr/nekoware/lib/libvorbis.so.1
Reading symbols from /usr/nekoware/lib/libogg.so.1...done.
Loaded symbols for /usr/nekoware/lib/libogg.so.1
Reading symbols from /usr/local/lib/gemrb/plugins/OpenALAudio.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/OpenALAudio.so
Reading symbols from /usr/nekoware/lib/libopenal.so.0...done.
Loaded symbols for /usr/nekoware/lib/libopenal.so.0
Reading symbols from /usr/nekoware/lib/libSDL-1.2.so.1...done.
Loaded symbols for /usr/nekoware/lib/libSDL-1.2.so.1
Reading symbols from /usr/lib32/libdl.so...done.
Loaded symbols for /usr/lib32/libdl.so
Reading symbols from /usr/lib32/libaudio.so...done.
Loaded symbols for /usr/lib32/libaudio.so
Reading symbols from /usr/nekoware/lib/libiconv.so.3...done.
Loaded symbols for /usr/nekoware/lib/libiconv.so.3
Reading symbols from /usr/lib32/libX11.so.1...done.
Loaded symbols for /usr/lib32/libX11.so.1
Reading symbols from /usr/lib32/libXext.so...done.
Loaded symbols for /usr/lib32/libXext.so
Reading symbols from /usr/local/lib/gemrb/plugins/PLTImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PLTImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/PNGImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PNGImporter.so
Reading symbols from /usr/nekoware/lib/libpng.so.3...done.
Loaded symbols for /usr/nekoware/lib/libpng.so.3
Reading symbols from /usr/nekoware/lib/libz.so.1...done.
Loaded symbols for /usr/nekoware/lib/libz.so.1
Reading symbols from /usr/nekoware/lib/libz.so...done.
Loaded symbols for /usr/nekoware/lib/libz.so
Reading symbols from /usr/local/lib/gemrb/plugins/PROImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PROImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/PSTOpcodes.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PSTOpcodes.so
Reading symbols from /usr/local/lib/gemrb/plugins/SAVImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/SAVImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/SDLVideo.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/SDLVideo.so
Reading symbols from /usr/local/lib/gemrb/plugins/SPLImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/SPLImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/STOImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/STOImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/TISImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/TISImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/TLKImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/TLKImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/TTFImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/TTFImporter.so
Reading symbols from /usr/nekoware/lib/libfreetype.so.7...done.
Loaded symbols for /usr/nekoware/lib/libfreetype.so.7
Reading symbols from /usr/local/lib/gemrb/plugins/WAVReader.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/WAVReader.so
Reading symbols from /usr/local/lib/gemrb/plugins/WEDImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/WEDImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/WMPImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/WMPImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/ZLibManager.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/ZLibManager.so

warning: wrong size gregset struct in core file
#0  0x00000000 in ?? ()
(gdb) bt
#0  0x00000000 in ?? ()
#1  0x00000000 in ?? ()
Previous frame identical to this frame (corrupt stack?)
(gdb) frame 0
#0  0x00000000 in ?? ()
(gdb) list
76      // about shrinking the heap.
77              #ifdef HAVE_UNISTD_H
78                      int pagesize = sysconf(_SC_PAGESIZE);
79              #else
80                      int pagesize = 4*1024;
81              #endif
82              mallopt(M_TRIM_THRESHOLD, 5*pagesize);
83      #endif
84     
85              Interface::SanityCheck(VERSION_GEMRB);
(gdb)

thats about all I know about GDB ;)
I am not able to run gdb to execute gemrb.. give an unknown signal error early on loading a few plugins.

any help, or direction/hints to give?
Thanks

User avatar
necron2600
Posts: 263
Joined: Tue May 26, 2015 10:38 pm
Location: Boston

Re: GemRB

Unread postby necron2600 » Tue Jan 03, 2017 6:43 pm

FYI.. on a linux node, Testing the same seg fault areas.. I grabbed their console output/log:

Guard outside inn:
[GameScript]: Displaying string on: none
[ResourceManager]: Searching for 'guarr02'...
[ResourceManager]: Found 'guarr02.wav' in 'chitin.key'.
[ResourceManager]: Found 'watch.dlg' in 'chitin.key'.
[ResourceManager]: Found 'spell.ids' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp3'...
[ResourceManager]: Found 'guiwbtp3.mos' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp1'...
[ResourceManager]: Found 'guiwbtp1.mos' in 'chitin.key'.
[ResourceManager]: Found 'clik2con.bam' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.

Man in house top of map (comes over to talk then attach):
[GameScript]: Displaying string on: none
[ResourceManager]: Searching for 'genmg14'...
[ResourceManager]: Found 'genmg14.wav' in 'chitin.key'.
[ResourceManager]: Found 'shank.dlg' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp3'...
[ResourceManager]: Found 'guiwbtp3.mos' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp1'...
[ResourceManager]: Found 'guiwbtp1.mos' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.

Noticing these are all within ResourceManager?
We are modding ResourceManager.h (as per our diffs) ..
in particular to include or not include ResourceSource.h for SGI due to no SFINAE

Also.. the Linux version seems to have "Searching for 'blah" yet SGI/IRIX does not show that yet. LInux has that right up front. I would imagine the segfault is occuring in this logic?

The text "Searching for .." is part of ResourceManager.cpp Maybe we could get someone to write more extended debug logic within ResourceManager.cpp ? I could just throw in lots of printf's but I am just hacking it. Or maybe Dexter could look more closely for anything that could cause IRIX/SGI to not work right?

User avatar
dexter1
Moderator
Moderator
Posts: 2737
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: GemRB

Unread postby dexter1 » Wed Jan 04, 2017 5:21 am

necron2600 wrote:Where (or what CD?) can I find dbx in order to debug an app or core file? Right now I can only use gdb.. not sure if that works well with MIPSpro compiled code?

dbx is part of the ProDev Workshop 2.9.x CD. It's separate from the Compiler Execution Environment CD's

Your compiled version has working sound for me:
In the cfg file:
AudioDriver = sdlaudio
I did try with it set to none, but nothing changed as far as the seg faults.

This is the first thing i do when i get unexpected program crashes or interruptions: disable any optional module or plugin option. This way i can eliminate SDL from the Y-U-NO-RUN equation.

Thanks to your latest diffs.. I can compile gemrb with MIPSPro without all the crazyness I was getting before.
My compiled version does not have sound though. But it still crashes in the same spots.
Regarding my compiling.. I am not sure how you are able to compile yours without the last diff I added to this thread?
In particular in the very begining:

[octane]:/storage/packaging-PENDING/gemrb-mipspro/gemrb-dexter/git-head/gemrb/build $ gmake
Scanning dependencies of target gemrb_core
[ 0%] Building CXX object gemrb/core/CMakeFiles/gemrb_core.dir/ActorMgr.cpp.o
[ 1%] Building CXX object gemrb/core/CMakeFiles/gemrb_core.dir/Ambient.cpp.o
cc-1293 CC: ERROR File = /storage/packaging-PENDING/gemrb-mipspro/gemrb-dexter/git-head/gemrb/gemrb/includes/Predicates.h, Line = 51
Pure specifier ("= 0") is allowed only on virtual functions.

bool operator()(PT param) const=0;

I have to add 'variable' before bool and it compiles..

Say what? I never saw that before. Are you sure you have all patches installed for MIPSPro and your IRIX version? My list of patches is:

Code: Select all

cyane:/home/frank> showprods -E patch\*
I = Installed, R = Removed

   Name                 Date        Description

I  patchSG0005329       07/14/2016  Patch SG0005329: 7.4 Compiler Header Files for Unix98, C99 and ANSI C++ namespace std #2
I  patchSG0005329.c++_dev_hdr_6518  07/14/2016  C++ Headers for Irix 6.5.18 and above
I  patchSG0005329.c++_dev_hdr_6518.lib  07/14/2016  C++ Headers for Irix 6.5.18 and above
I  patchSG0005329.compiler_dev_hdr_6518  07/14/2016  Base Compiler Headers for Irix 6.5.18 and above
I  patchSG0005329.compiler_dev_hdr_6518.lib  07/14/2016  Base Compiler Headers for Irix 6.5.18 and above

I  patchSG0005385       07/14/2016  Patch SG0005385: CPR fails to restart OpenMP jobs
I  patchSG0005385.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005385.eoe_sw.cpr  07/14/2016  SGI Checkpoint-Restart Software

I  patchSG0005401       07/14/2016  Patch SG0005401: Modules MIPSpro driver update 2
I  patchSG0005401.modules_sw  07/14/2016  Modules 2.2.1
I  patchSG0005401.modules_sw.mipspro  07/14/2016  MIPSpro modules support Software

I  patchSG0005474       07/14/2016  Patch SG0005474: Fixes for IRIX command and library vulnerabilities
I  patchSG0005474.desktop_base_sw  07/14/2016  IRIX Interactive Desktop Base Software, 6.5.21m
I  patchSG0005474.desktop_base_sw.dso  07/14/2016  Desktop Shared Libraries
I  patchSG0005474.desktop_base_sw.dso6_2  07/14/2016  Desktop 6.2 Shared Libraries
I  patchSG0005474.desktop_base_sw.ftrdso6_2  07/14/2016  Desktop 6.2 Icon Libraries (32-bit)
I  patchSG0005474.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005474.eoe_sw.base  07/14/2016  IRIX Base Execution Environment
I  patchSG0005474.eoe_sw.gifts_perl_lib  07/14/2016  Perl Libraries
I  patchSG0005474.insight_sw  07/14/2016  Online Documentation Software, 5.3
I  patchSG0005474.insight_sw.sgihelp  07/14/2016  SGIHelp (Help System), 5.3

I  patchSG0005525       07/14/2016  Patch SG0005525: ftpd updates for 6.5.22-6.5.23
I  patchSG0005525.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005525.eoe_sw.base  07/14/2016  IRIX Base Execution Environment

I  patchSG0005533       07/14/2016  Patch SG0005533: Security patch for OpenSSL 0.9.7b
I  patchSG0005533.openssl_man  07/14/2016  openssl Online Documentation, 0.9.7d
I  patchSG0005533.openssl_man.manpages  07/14/2016  openssl man pages, 0.9.7d
I  patchSG0005533.openssl_man.relnotes  07/14/2016  openssl Release Notes, 0.9.7d
I  patchSG0005533.openssl_sw  07/14/2016  openssl execution only env, 0.9.7d
I  patchSG0005533.openssl_sw.base  07/14/2016  openssl executables, 0.9.7d
I  patchSG0005533.openssl_sw.lib32  07/14/2016  openssl n32 libraries, 0.9.7d

I  patchSG0005601       07/14/2016  Patch SG0005601: rpc.mountd updates
I  patchSG0005601.nfs_sw  07/14/2016  NFS Software
I  patchSG0005601.nfs_sw.nfs  07/14/2016  NFS Support

I  patchSG0005609       07/14/2016  Patch SG0005609: IRIX 6.5.22 and 6.5.23 CPR fix for librestart library
I  patchSG0005609.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005609.eoe_sw.cpr  07/14/2016  SGI Checkpoint-Restart Software

I  patchSG0005630       07/14/2016  Patch SG0005630: 6.5.22 XFS #3
I  patchSG0005630.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005630.eoe_sw.base  07/14/2016  IRIX Base Execution Environment

I  patchSG0005667       07/14/2016  Patch SG0005667: Digital Media Tools on UltimateVision
I  patchSG0005667.dmedia_eoe_man  07/14/2016  Digital Media Documentation
I  patchSG0005667.dmedia_eoe_man.pages  07/14/2016  Digital Media Manual Pages
I  patchSG0005667.dmedia_eoe_sw  07/14/2016  Digital Media Software
I  patchSG0005667.dmedia_eoe_sw.base  07/14/2016  Digital Media System Components
I  patchSG0005667.dmedia_eoe_sw.lib  07/14/2016  Digital Media Execution Libraries

I  patchSG0005678       07/14/2016  Patch SG0005678: UDF DVDRAM write issue
I  patchSG0005678.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005678.eoe_sw.udf  07/14/2016  UDF Filesystem Support

I  patchSG0005734       07/14/2016  Patch SG0005734: update libpng, libz, libtiff, and jfif in ifl_eoe
I  patchSG0005734.ifl_eoe_man  07/14/2016  Image Format Execution Environment Documents
I  patchSG0005734.ifl_eoe_man.relnotes  07/14/2016  Image Format EOE Release notes
I  patchSG0005734.ifl_eoe_sw  07/14/2016  Image Format Executable Software
I  patchSG0005734.ifl_eoe_sw.c++  07/14/2016  Image Format Shared C++ Library

I  patchSG0005738       07/14/2016  Patch SG0005738: Networking Updates for 6.5.22
I  patchSG0005738.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005738.eoe_sw.base  07/14/2016  IRIX Base Execution Environment

I  patchSG0005739       07/14/2016  Patch SG0005739: NFS fixes for 6.5.22m
I  patchSG0005739.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005739.eoe_sw.base  07/14/2016  IRIX Base Execution Environment
I  patchSG0005739.nfs_sw  07/14/2016  NFS Software
I  patchSG0005739.nfs_sw.autofs  07/14/2016  AutoFS Support
I  patchSG0005739.nfs_sw.nfs  07/14/2016  NFS Support

I  patchSG0005743       07/14/2016  Patch SG0005743: exportfs updates for 6.5.22
I  patchSG0005743.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005743.eoe_sw.base  07/14/2016  IRIX Base Execution Environment
I  patchSG0005743.nfs_man  07/14/2016  NFS Documentation
I  patchSG0005743.nfs_man.nfs  07/14/2016  NFS Support Manual Pages
I  patchSG0005743.nfs_sw  07/14/2016  NFS Software
I  patchSG0005743.nfs_sw.nfs  07/14/2016  NFS Support

I  patchSG0005785       07/14/2016  Patch SG0005785: Adobe Replacement Patch
I  patchSG0005785.x_eoe_sw  07/14/2016  X11 Execution Environment
I  patchSG0005785.x_eoe_sw.Xfonts  07/14/2016  X11 Standard Fonts
I  patchSG0005785.x_eoe_sw.eoe  07/14/2016  X11 Execution Environment

I  patchSG0005806       07/14/2016  Patch SG0005806: PAM interoperability with Sun NIS master using passwd.adjunct maps
I  patchSG0005806.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005806.eoe_sw.base  07/14/2016  IRIX Base Execution Environment

I  patchSG0005807       07/14/2016  Patch SG0005807: Xlock authentication failures when PAM is in use
I  patchSG0005807.x_eoe_sw  07/14/2016  X11 Execution Environment
I  patchSG0005807.x_eoe_sw.eoe  07/14/2016  X11 Execution Environment

I  patchSG0005811       07/14/2016  Patch SG0005811: xfsdump/xfsrestore performance improvements for large filesystems
I  patchSG0005811.eoe_man  07/14/2016  IRIX Execution Environment Man Pages
I  patchSG0005811.eoe_man.base  07/14/2016  Basic IRIX Man Pages
I  patchSG0005811.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005811.eoe_sw.base  07/14/2016  IRIX Base Execution Environment

I  patchSG0005856       07/14/2016  Patch SG0005856: MPEG audio and rate converter fixes for 6.5.21 through 6.5.23
I  patchSG0005856.dmedia_eoe_sw  07/14/2016  Digital Media Software
I  patchSG0005856.dmedia_eoe_sw.lib  07/14/2016  Digital Media Execution Libraries

I  patchSG0005910       07/15/2016  Patch SG0005910: Kernel rollup for 6.5.22m
I  patchSG0005910.eoe_sw  07/15/2016  IRIX Execution Environment Software
I  patchSG0005910.eoe_sw.base  07/15/2016  IRIX Base Execution Environment

I  patchSG0005922       07/14/2016  Patch SG0005922: Pthreads library fixes for IRIX 6.5.21 through 6.5.22
I  patchSG0005922.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0005922.eoe_sw.base  07/14/2016  IRIX Base Execution Environment

I  patchSG0007061       07/14/2016  Patch SG0007061: rtmon identifies signal sender
I  patchSG0007061.dev_sw  07/14/2016  Development Software, 7.3.1.2
I  patchSG0007061.dev_sw.lib  07/14/2016  Development Libraries
I  patchSG0007061.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0007061.eoe_sw.perf  07/14/2016  Performance Measurement Utilities

I  patchSG0007076       07/14/2016  Patch SG0007076: MIPSpro 7.4.4m C++ Header File Update
I  patchSG0007076.c++_dev_hdr  07/14/2016  C++ Headers
I  patchSG0007076.c++_dev_hdr.lib  07/14/2016  C++ Library Headers

I  patchSG0007204       07/14/2016  Patch SG0007204: TimeZone processing change and 2007 zonefiles update
I  patchSG0007204.eoe_sw  07/14/2016  IRIX Execution Environment Software
I  patchSG0007204.eoe_sw.base  07/14/2016  IRIX Base Execution Environment

This is from my R4K Challenge S, but should be very similar to my O2's since i run all with 6.5.22m/7.4.4m
Pay special attention to patches 5329 and 7076 which fixes headers. This was originally patch 4605 but initially i incorrectly installed it in tandem with the MIPSPro 7.4 . SGI recommends to install the base compiler products first, then exit swmgr/inst and then re-open the patch folder(s) and inst will select the default set applicable for your system. This is to avoid partial patching of header files (could be that SGI incorrectly set the installation order on these patches)

however almost every compile item gives a WARNING:
function "GemRB::VoidCallback::operator()()" is hidden by
"GemRB::Callback<T>::operator()" -- virtual function override
intended?

virtual bool operator()(T target)=0;

So not sure on the impact of that...

Got that warning as well. operator()(T) is a virtual bool template constructor, which means that classes derived from this should either implement their own constructor if the virtual constructor is private (or even protected) but apart from that no clue. Maybe Lynx knows.

gdb on the core file (gemrb compiled with debug -g )
I am not sure if gdb can work properly with mipspro compiled code??

No, get dbx. GCC and MIPSPro use different name mangling in C++, so i doubt if this will work. Ah you said it already:
I am not able to run gdb to execute gemrb.. give an unknown signal error early on loading a few plugins.


Something else:
Noticing these are all within ResourceManager?
We are modding ResourceManager.h (as per our diffs) ..
in particular to include or not include ResourceSource.h for SGI due to no SFINAE

That patch is absolutely required because of the incorrect forward declaration which aborts the compilation of ResourceManager.cpp. I suspect this also prevents compiling this on windows unless the header is explicitely set.
It could be that there genuinely is a problem in ResourceManager.cpp but Lynx should have a look at that. Maybe he knows offhand if there are problems in the code.

BTW i added some code inlining to your previous post in order to making it more readable.
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:

User avatar
necron2600
Posts: 263
Joined: Tue May 26, 2015 10:38 pm
Location: Boston

Re: GemRB

Unread postby necron2600 » Wed Jan 04, 2017 8:17 pm

DEBUG!

####Talk to guard outside inn door:

Code: Select all

Process 86887:  Thread 0x10000: Stopped on signal SIGSEGV: Segmentation violation (default)
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::append(<stripped>) ["stl_alloc.h":372, 0x0ae151bc]
]


Here is stack:

Code: Select all

std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::append(<stripped>) ["stl_alloc.h":372]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(<stripped>) ["string":607]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=(this = 0x7fff26c0, __s = &0x7fff26d8) ["string":360]
GemRB::Font::RenderText(this = 0x1003cb60, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12b13b88, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]
GemRB::Font::Print(this = 0x1003cb60, rgn = <class>, string = &0x7fff2948, color = 0x12b13b88, alignment = '\000', point = 0x0) ["Font.cpp":579]
GemRB::TextSpan::DrawContentsInRegions(this = 0x1084b0f0, rgns = &0x10677d3c, offset = &0x7fff2a10) ["TextContainer.cpp":284]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x10626f58, rgns = &0x106964fc, offset = &0x7fff2ad0) ["TextContainer.cpp":544]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x1069642c, rgns = &0x7fff2b50, offset = &0x7fff2b88) ["TextContainer.cpp":544]
GemRB::Content::Draw(this = 0x1069642c, p = <class>) ["TextContainer.cpp":69]
GemRB::TextArea::DrawInternal(this = 0x106963a8, clip = &0x7fff2be0) ["TextArea.cpp":141]
GemRB::Control::Draw(this = 0x106963a8, x = 64, y = 390) ["Control.cpp":110]
GemRB::Window::DrawWindow(this = 0x10678e18) ["Window.cpp":137]
GemRB::Interface::DrawWindows(this = 0x1000bbd0, allow_delete = '\001') ["Interface.cpp":3055]
GemRB::Interface::Main(this = 0x1000bbd0) ["Interface.cpp":997]
main(argc = 3, argv = 0x7fff2e94) ["GemRB.cpp":104]
__start(<stripped>) ["crt1text.s":177]


/usr/include/CC/stl_alloc.h:372

Code: Select all

        return __r;
    }
-->    *__my_free_list = __result -> _M_free_list_link;
    return (__result);
  };


/usr/include/CC/string:607

Code: Select all

                                   __false_type) {
    typedef typename iterator_traits<_InputIter>::iterator_category _Category;
-->    return append(__f, __l, _Category());
  }


/usr/include/CC/string:360

Code: Select all

  basic_string& operator=(const basic_string& __s) {
    if (&__s != this)
-->      assign(__s.begin(), __s.end());
    return *this;
  }


/gemrb/gemrb/core/GUI/TextSystem/Font.cpp:254

Code: Select all

            eolpos++; // convert from index
         }
-->         line = string.substr(stringPos, eolpos - stringPos);
         stringPos = eolpos;
      }


/gemrb/gemrb/core/GUI/TextSystem/Font.cpp:579

Code: Select all

   }

-->   size_t ret = RenderText(string, rgn, pal, alignment, &p);
   if (point) {
      *point = p;
   }
   return ret;
}


####Guy in north/top house who comes over to talk/attack

Code: Select all

std::__default_alloc_template<(__n = 32) ["stl_alloc.h":372]
std::simple_alloc<wchar_t,std::__default_alloc_template<(__n = 8) ["stl_alloc.h":199]
std::_String_alloc_base<wchar_t,std::allocator<wchar_t>,(this = 0x7fff26d8, __n = 8) ["string":135]
std::_String_base<wchar_t,std::allocator<wchar_t> >::_M_allocate_block(this = 0x7fff26d8, __n = 8) ["string":158]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_M_range_initialize(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c, <no name> = <class>) ["string":434]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_M_range_initialize(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c) ["string":441]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_M_initialize_dispatch(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c, <no name> = <no value>) ["string":453]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c, __a = &0x7fff2674) ["string":345]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::substr(this = 0x7fff2948, <no name> = 0x7fff26d8, __pos = 0, __n = 7) ["string":1033]
GemRB::Font::RenderText(this = 0x1003cc40, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12d98628, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]
GemRB::Font::Print(this = 0x1003cc40, rgn = <class>, string = &0x7fff2948, color = 0x12d98628, alignment = '\000', point = 0x0) ["Font.cpp":579]
GemRB::TextSpan::DrawContentsInRegions(this = 0x106062c8, rgns = &0x107bcd14, offset = &0x7fff2a10) ["TextContainer.cpp":284]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x106104c0, rgns = &0x1060fc14, offset = &0x7fff2ad0) ["TextContainer.cpp":544]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x106103f4, rgns = &0x7fff2b50, offset = &0x7fff2b88) ["TextContainer.cpp":544]
GemRB::Content::Draw(this = 0x106103f4, p = <class>) ["TextContainer.cpp":69]
GemRB::TextArea::DrawInternal(this = 0x10610370, clip = &0x7fff2be0) ["TextArea.cpp":141]
GemRB::Control::Draw(this = 0x10610370, x = 64, y = 390) ["Control.cpp":110]
GemRB::Window::DrawWindow(this = 0x106101d8) ["Window.cpp":137]
GemRB::Interface::DrawWindows(this = 0x1000bbd0, allow_delete = '\001') ["Interface.cpp":3055]
GemRB::Interface::Main(this = 0x1000bbd0) ["Interface.cpp":997]
main(argc = 3, argv = 0x7fff2e94) ["GemRB.cpp":104]
__start(<stripped>) ["crt1text.s":177]


So it seems to seg violation at stl_alloc.h:372 stemming from Font.cpp line 254 and stack:
GemRB::Font::RenderText(this = 0x1003cb60, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12b13b88, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]
or
GemRB::Font::RenderText(this = 0x1003cc40, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12d98628, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]

There are some other problems of course.. but these stick out right away and core dump.

User avatar
necron2600
Posts: 263
Joined: Tue May 26, 2015 10:38 pm
Location: Boston

Re: GemRB

Unread postby necron2600 » Fri Jan 06, 2017 4:18 pm

Lynx.. any help with this?
Thank you

lynx
Posts: 17
Joined: Fri Oct 14, 2016 9:15 am

Re: GemRB

Unread postby lynx » Sun Jan 08, 2017 2:13 am

Heyya. HEAD now has all your work. Please play with that when debugging, 0.8.4 is history. The crashes happen when trying to display text in the chat box. Don't mind ResourceManager, since we do selective logging.

The demo is a mess, ignore that for now.

Are you two building with sdl1 or 2?

User avatar
dexter1
Moderator
Moderator
Posts: 2737
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: GemRB

Unread postby dexter1 » Sun Jan 08, 2017 6:18 am

lynx wrote:Are you two building with sdl1 or 2?

We are using SDL1 : SDL 1.2.13 and 1.2.15 to be exact.

For more info see the Neko_gemrb.txt file which contains the steps and requirements needed to build our version. At the moment necron2600 has the most debugging performed (with BG1).
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:

User avatar
necron2600
Posts: 263
Joined: Tue May 26, 2015 10:38 pm
Location: Boston

Re: GemRB

Unread postby necron2600 » Wed Jun 07, 2017 6:53 pm

Lynx.. hope your year has been going well?
Any possibility for helping us with the crashes we are encountering? GemRB is unusable except to showcase moving a character around.
Thank you

User avatar
dexter1
Moderator
Moderator
Posts: 2737
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: GemRB

Unread postby dexter1 » Thu Jun 08, 2017 12:25 am

Looking at the error messages, it appears that canvas is a NULL pointer. It could be that the SDL 1.x binding for creating a canvas goes wrong. I should have a look at SDL2 compile in IRIX, since that is what i want to use for my programs.
Did you poke Lynx via his email yet?
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:

lynx
Posts: 17
Joined: Fri Oct 14, 2016 9:15 am

Re: GemRB

Unread postby lynx » Thu Jun 08, 2017 7:45 am

I'm subscribed to this thread, no worries. Your stack is scary and I can't test it myself, so my options are limited. What are values of things in the line where it breaks in GemRB::Font::RenderText? Did something overflow etc.

User avatar
dexter1
Moderator
Moderator
Posts: 2737
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: GemRB

Unread postby dexter1 » Thu Jun 08, 2017 7:57 am

lynx wrote:What are values of things in the line where it breaks in GemRB::Font::RenderText? Did something overflow etc.

The two examples by necron2600 list argument stack values of the member call GemRB::Font::RenderText

Talk to Guard outside Inn door:

Code: Select all

GemRB::Font::RenderText(this = 0x1003cb60, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12b13b88, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]

Guy in north/top house who comes over to talk/attack:

Code: Select all

GemRB::Font::RenderText(this = 0x1003cc40, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12d98628, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]

Both crash at the same font.cpp:254 line. In both cases canvas is a null pointer. I really should check with my O2 running IRIX6.5.30 if this is happening consistently across IRIX releases. I also cannot rule out SDL 1.x involvement in the crash.

But maybe the Linux trace shows some different values.

BTW: is there any use of the this pointer in the RenderText class? I had beef before with using that pointer in IRIX code (open source celestia)
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:

lynx
Posts: 17
Joined: Fri Oct 14, 2016 9:15 am

Re: GemRB

Unread postby lynx » Thu Jun 08, 2017 9:22 am

Those are the function arguments, not where it crashed (and mostly opaque pointers). If I understood correctly, the last line in GemRB was:
line = string.substr(stringPos, eolpos - stringPos);
So is string still sane? What's its length? Are stringPos and eolpos within limits ...

the function is ready for canvas to be null — if that were the main problem, it'd crash more cleanly.


Return to “IRIX and Software”

Who is online

Users browsing this forum: No registered users and 3 guests