On Wed, Feb 17, 2021 at 12:33:58AM +0000, Brian Callahan wrote:
> Does the update I posted a few days back help?
> https://marc.info/?l=openbsd-ports&m=161332490221938&w=2
>
> The update works on my amd64 machine.
No, it still crashes right away on my X230 (default `vm.malloc_conf').
Here's full output of `mirrormagic -v --debug' in case it helps plus the
backtrace with your fix on the latest snapshot with latest packages;
I built with DEBUG_PACKAGES=${BUILD_PACKAGES} to install
debug-mirrormagic for egdb:
$ mirrormagic -v --debug
mirrormagic: cannot open configuration file
'/home/kn/.mirrormagic/setup.conf'
mirrormagic: using default setup values
mirrormagic: cannot open configuration file
'/home/kn/.mirrormagic/autosetup.conf'
mirrormagic: Using private, single-user scores directory.
mirrormagic: warning: configuration file
'/home/kn/.mirrormagic/cache/artworkinfo.cache' is empty
mirrormagic: warning: no game controller base mappings found
mirrormagic: cannot open configuration file
'/home/kn/.mirrormagic/levelsetup.conf'
mirrormagic: using default setup values
mirrormagic: cannot open configuration file
'/home/kn/.mirrormagic/levelsetup/classic_deflektor/levelsetup.conf'
mirrormagic: using default setup values
-------------------------------------------------------------------------------
mirrormagic: dynamic token(s) found in config file:
mirrormagic: - config file:
'/usr/local/share/mirrormagic/graphics/gfx_mirrormagic/graphicsinfo.conf'
mirrormagic: - dynamic token: 'font.text_1.INFO'
mirrormagic: - dynamic token: 'font.text_1.INFO.x'
mirrormagic: - dynamic token: 'font.text_1.INFO.y'
mirrormagic: - dynamic token: 'font.text_1.INFO.width'
mirrormagic: - dynamic token: 'font.text_1.INFO.height'
mirrormagic: - dynamic token: 'font.text_4.INFO'
mirrormagic: - dynamic token: 'font.text_4.INFO.x'
mirrormagic: - dynamic token: 'font.text_4.INFO.y'
mirrormagic: - dynamic token: 'font.text_4.INFO.width'
mirrormagic: - dynamic token: 'font.text_4.INFO.xoffset'
mirrormagic: - dynamic token: 'font.text_4.INFO.height'
-------------------------------------------------------------------------------
mirrormagic: cannot open configuration file
'/home/kn/.mirrormagic/editorcascade.conf'
mirrormagic: cannot open configuration file
'/home/kn/.mirrormagic/editorsetup.conf'
$ egdb --quiet mirrormagic mirrormagic.core
Reading symbols from mirrormagic...Reading symbols from
/usr/local/bin/.debug/mirrormagic.dbg...done.
[New process 523646]
[New process 448942]
Core was generated by `mirrormagic'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000062c6b061937 in SDL_DestroyTexture_REAL () from
/usr/local/lib/libSDL2.so.0.9
[Current thread is 1 (process 523646)]
(gdb) bt
#0 0x0000062c6b061937 in SDL_DestroyTexture_REAL () from
/usr/local/lib/libSDL2.so.0.9
#1 0x0000062982980c89 in SDLFreeBitmapTextures (bitmap=0x62c6e2e5480)
at sdl.c:484
#2 0x000006298296df48 in FreeImageTextures (pos=8) at image.c:380
#3 FreeAllImageTextures () at image.c:391
#4 0x00000629828c6114 in InitImageTextures () at init.c:266
#5 0x00000629828e8f95 in ChangeViewportPropertiesIfNeeded () at
tools.c:9311
#6 0x00000629828eb29c in DrawMainMenu () at screens.c:1531
#7 0x00000629828ce8d3 in OpenAll () at init.c:6080
#8 0x00000629828c5991 in main (argc=<optimized out>, argv=<optimized
out>) at main.c:7758
Since it crashes at texture handling, I poked around a bit:
(gdb) fr 1
(gdb) p *bitmap
$1 = {
source_filename = 0x62c5efa8a00
"/usr/local/share/mirrormagic/graphics/gfx_classic/RocksElements.png",
width = 512, height = 480, surface = 0x62c5efa8880, surface_masked =
0x62c5efa8c00,
texture = 0x62bc748d900, texture_masked = 0x62c31a91a00}
(gdb) p bitmap->texture
$2 = (SDL_Texture *) 0x62bc748d900
(gdb) p *bitmap->texture
$3 = <incomplete type>
Looking at /usr/local/include/SDL2/SDL_render.h:
/**
* \brief An efficient driver-specific representation of pixel data
*/
struct SDL_Texture;
typedef struct SDL_Texture SDL_Texture;
SDL seems to omit the struct definition, so I try printing it as
something to see if the pointer is valid:
(gdb) p (char)*bitmap->texture
Cannot access memory at address 0x62bc748d900
So perhaps some texture corruption or its memory already being freed at
this point? `texture_masked' has something in memory at least:
(gdb) p bitmap->texture_masked
$4 = (SDL_Texture *) 0x62c31a91a00
(gdb) p *bitmap->texture_masked
$5 = <incomplete type>
(gdb) p (char)*bitmap->texture_masked
$6 = -128 '\200'
I don't know stuff about SDL, mirrormagic or game textures... this is
really just stabbing around in the dark.