[Sumover-dev] [Media Tools] #183: VIC H.264 crashing on startup in
avcodec.dll
Media Tools
SUMOVER-dev at cs.ucl.ac.uk
Fri Aug 22 18:44:52 BST 2008
#183: VIC H.264 crashing on startup in avcodec.dll
--------------------+-------------------------------------------------------
Reporter: piers | Owner: piers
Type: defect | Status: new
Priority: major | Milestone:
Component: vic | Version: 2.8ucl-1.4.0
Keywords: |
--------------------+-------------------------------------------------------
VIC was crashing on startup in __gcc_register_frame() - having been called
by__do_global_ctors () and by DllMainCRTStartup at 12 () when the dll is
loaded. Had to debug in gdb - after tracking the original crash in from
Visual C++ but since VC++ can't read the debug info generated by mingw I
ran it in mingw gdb. It seems that gdb can use the symbol information from
VC++ (which setup in VC++ using the Microsoft symbol server:
http://msdl.microsoft.com/download/symbols)
It turns out the problem was the same as [http://www.nabble.com/Bad-DLL-
relocation---reproducible-w--test-case-tt18292380.html#a18292380 this
project] was having:
"The problem is that DLLs generated by MingW GCC (with -shared) are not
correctly relocatable, even though they contain relocation information.
LoadLibrary() returns ERROR_NOACCESS if it is forced to relocate the DLL
and a backtrace shows a blind jump into bad memory from
__gcc_register_frame. "
"* The crash is caused by the weak reference __register_frame_info being
given an out-of-segment pointer (0x9dae0000) in the relocated DLL. I
presume fixup has gone wrong?
* This is not an issue with GCC 4.2.1-SJLJ, likely due to the SJLJ
unwind model, which uses different code in __gcc_register_frame.
However, I was unable to find the 4.2.1-DW2 package to confirm this. "
This avcodec.dll library had been compiled with mingw gcc-4.3.0-alpha - It
was fixed by compiling it with GCC 4.2.1-SJLJ.
--
Ticket URL: <https://frostie.cs.ucl.ac.uk/nets/mmedia/ticket/183>
Media Tools <http://mediatools.cs.ucl.ac.uk/>
Media Tools
More information about the Sumover-dev
mailing list