Mail Archives: cygwin/2000/04/12/13:01:17
Hi,
I recently installed Cygwin and tried to port a library,
which was compiled with gcc and g++, to a Windows dll.
I followed the steps described under 'Building and Using
DLLs' and used this script to generate the DLL:
cd driver
make -f driver.mak libdrv.a >& ../make_driver.log
cp libdrv.a ..
cd ../fransch
make -f fransch.mak >& ../make_fransch.log
cp libfransch.a ..
cd ..
gcc -c fs_driver_lib.c -Idriver -o fs_driver_lib.o
gcc -s -Wl,--base-file,fs_driver_lib.base -o fs_driver_lib.dll
fs_driver_lib.o -Wl,-e,_DllMain AT 12 -Wl,-e,_FS_Driver_run -Wl,libdrv.a
-Wl,libFransch.a -Wl,libstdc++.a
dlltool --base-file fs_driver_lib.base --def fs_driver_lib.def
--output-exp fs_driver_lib.exp --dllname fs_driver_lib.dll
gcc -s -Wl,--base-file,fs_driver_lib.base,fs_driver_lib.exp -o
fs_driver_lib.dll fs_driver_lib.o -Wl,-e,_DllMain AT 12
-Wl,-e,_FS_Driver_run -Wl,libdrv.a -Wl,libFransch.a -Wl,libstdc++.a
dlltool --base-file fs_driver_lib.base --def fs_driver_lib.def
--output-exp fs_driver_lib.exp
gcc -Wl,fs_driver_lib.exp -o fs_driver_lib.dll fs_driver_lib.o
-Wl,-e,_DllMain AT 12 -Wl,-e,_FS_Driver_run -Wl,libdrv.a -Wl,libFransch.a
-Wl,libstdc++.a
Compilation and linking works without warnings.
The corresponding fs_driver_lib.lib is generated
as follows:
lib /machine:ix86 /DEF:fs_driver_lib.def
and used in a VC++ 6.0 project to be linked against an other
DLL (FS_Driver), which in turn is called from Simulink.
DLL loading works fine, but when actually calling the exported
function, a segmentation violation is detected (see below).
It seems to be related to file I/O and print statements, but I can't
say for sure.
I've looked all over the FAQ and tried a lot of compiler and linker
switches, but without avail.
Has anybody an idea?
Does the commercial version cover such kind of support?
Best regards,
Thiess
------------------------------------------------------------------------
Segmentation violation detected at Wed Apr 12 19:56:01 2000
------------------------------------------------------------------------
Configuration:
MATLAB Version: 5.3.1.29215a (R11.1)
Operating System: Microsoft Windows 98
Window System: Version 4.10 (Build 2222: A )
Register State:
EAX = 00000000 EBX = 610625bc
ECX = 61062380 EDX = 00000000
ESI = 61064944 EDI = 01b37108
EBP = 01b36c20 ESP = 01b36c14
EIP = bff7b9a6 FLG = 00000246
Stack Trace:
[0] KERNEL32.DLL:bff7b9a6(0x61062380, 0x610625bc, 0, 0x01b37108)
[1] CYGWIN1.DLL:6105aa0d(0x61062380, 1024, 0x610625bc, 0x01b37020)
[2] CYGWIN1.DLL:6105ebaa(0x610625bc, 0x08551040, 0x01b36f58,
0x6105851b)
[3] CYGWIN1.DLL:6105b3b7(0x610625bc, 0x08551040, 0x01b37020,
0x01b37108)
[4] CYGWIN1.DLL:6105851b(0x61062380, 0x610625bc, 0x08551040,
0x01b36f94)
[5] CYGWIN1.DLL:6105845c(0x610625bc, 0x08551040, 0x01b36f94,
0x06d8d0f8)
[6] CYGWIN1.DLL:61053f31(0x08551040, 0, 0x81708050, 0x8170800c)
[7] FS_DRIVER_LIB.DLL:08551068(0x01b370e4, 0x83c46f74, 0, 0)
[8] FS_DRIVER_LIB.DLL:08551259(0, 0x01b370e4, 0, 0)
[9] FS_DRIVER.DLL:08512cc2(0x04e42fa8, 0, 0x06d8cf18, 0)
[10] FS_DRIVER.DLL:085128e3(0xfffffffe, 0x04d6c270, 5, 0x06d8cf18)
[11] MATLAB.EXE:_mexRunMexFile(0xffff127f, 0x04d6c270, 5, 0x06d8cf18)
+ 95 bytes
[12] MATLAB.EXE:_psRunMexFile(0xfffffffe, 0x04d6c270, 5, 0x06d8cf18) +
458 bytes
[13] MATLAB.EXE:_psCallMexFile(0xfffffffe, 0x04d6c270, 5, 0x06d8cf18)
+ 28 bytes
[14] MATLAB.EXE:_psCallFunction(0xfffffffe, 0x04d6c270, 5, 0x06d8cf18)
+ 45 bytes
[15] MATLAB.EXE:_psDoMatlabFcnCall(0xfffffffe, 0x04d6c270, 5,
0x06d8cf18) + 151 bytes
[16] SIMULINK.DLL:_CMexSFcnOutputFcn(0x04d6bf38, 0x04cd34c0,
0x01b373ec, 0x007e5f77) + 571 bytes
[17] SIMULINK.DLL:_ModelOutput(0x04d6bf38, 0x04d63710, 0x0467f8b0, 0)
+ 40 bytes
[18] SIMULINK.DLL:_SFcnOutputFcn(0x04cd34c0, 0x06da586c, 0x0467f8b0,
0x04e150b4) + 247 bytes
[19] SIMULINK.DLL:_BlockOutput(0x06da586c, 0x0467f8b0, 0x04d63710, 0)
+ 683 bytes
[20] SIMULINK.DLL:_ExecSTaskOutputList(0x04d63710, 0x04dcd0a0,
0x04e150b4, 0) + 259 bytes
[21] SIMULINK.DLL:_BdSystemOutput(0x0467f8b0, 0x02804278, 0x04dcd0a0,
0x0467f8b0) + 124 bytes
[22] SIMULINK.DLL:_BdOutputFcn(0x04d63710, 0, 0x01b374d8, 0x00849af4)
+ 35 bytes
[23] SIMULINK.DLL:_ModelOutput(0x04d63710, 0x04d63710, 0x0467f8b0, 0)
+ 40 bytes
[24] SIMULINK.DLL:_slDoOutputAndUpdate(0, 0x026f8c28, 0x04d63710, 0) +
244 bytes
[25] SIMULINK.DLL:_SimulateModel(1, 0x026f8c28, 0x01b3757c,
0x00a1df08) + 128 bytes
[26] SIMULINK.DLL:_Simulate(0x01b3758c, 0x01b37588, 0, 3) + 497 bytes
[27] SIMULINK.DLL:_sleCommandLineSimulation(0, 0x01b375d4, 3,
0x01b3789c) + 133 bytes
[28] SIMULINK.DLL:_slFullSimulate(0, 0x01b375d4, 3, 0x01b3789c) + 26
bytes
[29] MATLAB.EXE:_psStackOp(1, 3, 0, 0x01b39570) + 1194 bytes
[30] MATLAB.EXE:_psInterPcode(1, 0x06d466b8, 2, 0) + 2180 bytes
[31] MATLAB.EXE:_psInterPcode(1, 0, 0x026de848, 0) + 4441 bytes
[32] MATLAB.EXE:_psWordsj(0, 0x01b39880, 0, 0x01b39b4c) + 1171 bytes
[33] MATLAB.EXE:_psCallMFile(0, 0x01b39880, 0, 0x01b39b4c) + 170 bytes
[34] MATLAB.EXE:_psCallFunction(0, 0x01b39880, 0, 0x01b39b4c) + 45
bytes
[35] MATLAB.EXE:_psFullFevalFcn(0, 0x01b39880, 1, 0x01b39b48) + 201
bytes
[36] MATLAB.EXE:_psStackOp(103, 1, 0, 0) + 1194 bytes
[37] MATLAB.EXE:_psInterPcode(1, 0, 0x026dfcf8, 0) + 2426 bytes
[38] MATLAB.EXE:_psWordsj(0, 0x01b3adec, 0, 0x01b3b0f8) + 1171 bytes
[39] MATLAB.EXE:_psExecMFile(0, 0, 0x01b3b0f8, 0x026dfcf8) + 189 bytes
[40] MATLAB.EXE:_psExecFunction(0, 0, 0x01b3b0f8, 0x026dfcf8) + 41
bytes
[41] MATLAB.EXE:_psMMexExecute(685, 0, 0, 0x01b3cd18) + 611 bytes
[42] MATLAB.EXE:_psInterPcode(1, 0, 2, 3) + 1678 bytes
[43] MATLAB.EXE:_psInterPcode(1, 1, 0x026d95d8, 0) + 4441 bytes
[44] MATLAB.EXE:_psWordsj(0, 0x01b3d028, 1, 0x01b3d2f4) + 1171 bytes
[45] MATLAB.EXE:_psCallMFile(0, 0x01b3d028, 1, 0x01b3d2f4) + 170 bytes
[46] MATLAB.EXE:_psCallFunction(0, 0x01b3d028, 1, 0x01b3d2f4) + 45
bytes
[47] MATLAB.EXE:_psFullFevalFcn(0, 0x01b3d028, 2, 0x01b3d2f0) + 201
bytes
[48] MATLAB.EXE:_psStackOp(103, 2, 0, 2) + 1194 bytes
[49] MATLAB.EXE:_psInterPcode(0, 0x04d8c79a, 0, 0x02584a00) + 2426
bytes
[50] MATLAB.EXE:_psEvalString(0x04d8c780, 25, 0, 0) + 537 bytes
[51] MATLAB.EXE:_psEvalExpInWS(0x04d8c780, 0, 0, 0x01b3e3f8) + 94
bytes
[52] HG.DLL:_goCallEventCallback(0, 0, 0x0074d7bc, 0x006fbcc0) + 321
bytes
[53] HG.DLL:_goCallCallback(0x026e95a8, 0x04ad40e8, 0x0074d7bc,
0x006fbcc0) + 66 bytes
[54] HG.DLL:_goControlActivated(0x026e95a8, 4056, 0x04ad4148,
0x01b3e6d0) + 80 bytes
[55] UIW.DLL:_activate_control(4056, 0x04ad4148, 0x01b3e4e0, 34128) +
137 bytes
[56] UIW.DLL:_PushButtonProc AT 16(4056, 0, 0, 4056) + 127 bytes
[57] KERNEL32.DLL:bff7363b(0x66c78550, 26311, 0, 0xbff719b8)
[58] KERNEL32.DLL:bff94407(0x84e66038, 0xbff7186d, 0x852a500f, 0)
Segmentation violation occurred within signal handler.
Unable to complete stack trace (stack was probably corrupted)
This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the MATLAB API Guide for information on
debugging MEX-files.
--
-------------------------------------------------------------
Dipl.-Ing. Thieß-Magnus Wolter Tel: +49 89 747377 33
TESIS DYNAware GmbH Fax: +49 89 747377 99
Implerstraße 26
D-81371 München, Germany t DOT wolter AT tesis DOT de
-------------------------------------------------------------
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -