分类:
2009-05-21 20:00:49
Matlab 7.1 版本R14SP3,我的PFW默认禁止它访问网络,结果执行符号计算的时候崩溃了?
很简单的命令:
syms x 定义一个符号
f=sin(x) 定义一个表达式
结果就产生了下面的错误输出:
------------------------------------------------------------------------
Segmentation violation detected at Thu May 21 19:52:19 2009
------------------------------------------------------------------------
Configuration:
MATLAB Version: 7.1.0.246 (R14) Service Pack 3
MATLAB License: 161051
Operating System: Microsoft Windows XP
Window System: Version 5.1 (Build 2600: Service Pack 3)
Processor ID: x86 Family 6 Model 11 Stepping 4, GenuineIntel
Virtual Machine: Java 1.5.0 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode
Default Charset: GBK
Register State:
EAX = 02eee9e0 EBX = 00000001
ECX = 00000000 EDX = 00000000
ESI = 02eee9e0 EDI = 784637b0
EBP = 00cdbcf8 ESP = 00cdb790
EIP = 0e3c1139 FLG = 00010246
Stack Trace:
[0] maplec.dll:0x0e3c1139(2, 0x00cdc340, 1, 0x00cdc3d0)
[1] libmex.dll:_mexRunMexFile(2, 0x00cdc340, 1, 0x00cdc3d0) + 103 bytes
[2] libmex.dll:private: void __thiscall Mfh_mex::runMexFileWithSignalProtection(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(2, 0x00cdc340, 1, 0x00cdc3d0) + 73 bytes
[3] libmex.dll:public: virtual void __thiscall Mfh_mex::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(2, 0x00cdc340, 1, 0x00cdc3d0) + 169 bytes
[4] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(2, 0x00cdc340, 1, 0x00cdc3d0) + 271 bytes
[5] m_interpreter.dll:void __cdecl mdCallFunction(int,struct mxArray_tag * *,int,struct mxArray_tag * *,class Mfh_MATLAB_fn *)(2, 0x00cdc340, 1, 0x00cdc3d0) + 56 bytes
[6] m_interpreter.dll:public: void __thiscall ResolverFunctionDesc::CallFunction(int,struct mxArray_tag * * const,int,struct mxArray_tag * * const)(2, 0x00cdc340, 1, 0x00cdc3d0) + 94 bytes
[7] m_interpreter.dll:public: bool __thiscall Resolver::CallMFunction(int,int,class _m_operand * const,union m_operand_storage *,int,class _m_operand * const,union m_operand_storage *,int *)(2, 2, 0x02d7ff30, 0) + 947 bytes
[8] m_interpreter.dll:bool __cdecl inResolveMFunctionCall(struct _m_function_desc *,int,int,class _m_operand * const,union m_operand_storage *,int,class _m_operand * const,union m_operand_storage *,int *,enum inMarshalType *,unsigned int,int,unsigned int const *,int)(0x0f4409d8, 2, 2, 0x02d7ff30) + 150 bytes
[9] m_interpreter.dll:bool __cdecl accelMFunctionCall(struct _accelOp *,struct _accelOp * *,int *,enum inMarshalType *)(0x01d68a40, 0x00cdc998, 0x00cdc984, 0x00cdcb24) + 161 bytes
[10] m_interpreter.dll:public: enum jitReturnFlags __thiscall accelCode::Call(enum inMarshalType *,int *)const (0x00cdcb24, 0x00cdcd60, 0x00cdcb38 "p掏", 0x787683d1) + 21152 bytes
[11] m_interpreter.dll:int __cdecl inAccel(class accelCode *,enum inMarshalType *,int *)(0x02eed5e0, 0x00cdcb24, 0x00cdcd60, 0x00cdcd60) + 19 bytes
[12] m_interpreter.dll:bool __cdecl inExecuteHotSegment(struct _inJitAccelInfo *,enum opcodes *,int *,int *)(0x00cdcbc8, 0x00cdcc84, 0x00cdcc34, 0x00cdcd60) + 1585 bytes
[13] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *,int *)(1, 2256, 104, 0) + 287 bytes
[14] m_interpreter.dll:int __cdecl inInterPcodeSJ(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag *,int *)(1, 2256, 40, 0) + 282 bytes
[15] m_interpreter.dll:int __cdecl inExecuteMFunctionOrScript(class Mfh_mp *,bool)(0x02f801e0, 0, 1, 0x00cdd108) + 724 bytes
[16] m_interpreter.dll:_inWordsj(2, 0x00cdd078, 1, 0x00cdd108) + 443 bytes
[17] m_interpreter.dll:public: void __thiscall Mfh_mp::inRunMP(int,struct mxArray_tag * *,int,struct mxArray_tag * *,struct inWorkSpace_tag *)(2, 0x00cdd078, 1, 0x00cdd108) + 164 bytes
[18] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(struct _mdUnknown_workspace *,int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 2, 0x00cdd078, 1) + 28 bytes
[19] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(2, 0x00cdd078, 1, 0x00cdd108) + 26 bytes
[20] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(2, 0x00cdd078, 1, 0x00cdd108) + 271 bytes
[21] m_interpreter.dll:void __cdecl mdCallFunction(int,struct mxArray_tag * *,int,struct mxArray_tag * *,class Mfh_MATLAB_fn *)(2, 0x00cdd078, 1, 0x00cdd108) + 56 bytes
[22] m_interpreter.dll:public: void __thiscall ResolverFunctionDesc::CallFunction(int,struct mxArray_tag * * const,int,struct mxArray_tag * * const)(2, 0x00cdd078, 1, 0x00cdd108) + 94 bytes
[23] m_interpreter.dll:public: bool __thiscall Resolver::CallMFunction(int,int,class _m_operand * const,union m_operand_storage *,int,class _m_operand * const,union m_operand_storage *,int *)(2, 2, 0x02d7cea0, 0) + 947 bytes
[24] m_interpreter.dll:bool __cdecl inResolveMFunctionCall(struct _m_function_desc *,int,int,class _m_operand * const,union m_operand_storage *,int,class _m_operand * const,union m_operand_storage *,int *,enum inMarshalType *,unsigned int,int,unsigned int const *,int)(0x0f40ea18, 2, 2, 0x02d7cea0) + 150 bytes
[25] m_interpreter.dll:bool __cdecl accelMFunctionCall(struct _accelOp *,struct _accelOp * *,int *,enum inMarshalType *)(0x01d688a0, 0x00cdd6d0, 0x00cdd6bc, 0x00cdd85c) + 161 bytes
[26] m_interpreter.dll:public: enum jitReturnFlags __thiscall accelCode::Call(enum inMarshalType *,int *)const (0x00cdd85c, 0x00cdda98, 0x00cdd870 "ㄙ�, 0x787683d1) + 21152 bytes
[27] m_interpreter.dll:int __cdecl inAccel(class accelCode *,enum inMarshalType *,int *)(0x02eef350, 0x00cdd85c, 0x00cdda98, 0x00cdda98) + 19 bytes
[28] m_interpreter.dll:bool __cdecl inExecuteHotSegment(struct _inJitAccelInfo *,enum opcodes *,int *,int *)(0x00cdd900, 0x00cdd9bc, 0x00cdd96c, 0x00cdda98) + 1585 bytes
[29] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *,int *)(1, 1320, 85, 0) + 287 bytes
[30] m_interpreter.dll:int __cdecl inInterPcodeSJ(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag *,int *)(1, 1320, 20, 0) + 282 bytes
[31] m_interpreter.dll:int __cdecl inExecuteMFunctionOrScript(class Mfh_mp *,bool)(0x02f80020, 0, 3, 0x00cddf38) + 724 bytes
[32] m_interpreter.dll:_inWordsj(1, 0x00cdded8, 3, 0x00cddf38) + 443 bytes
[33] m_interpreter.dll:public: void __thiscall Mfh_mp::inRunMP(int,struct mxArray_tag * *,int,struct mxArray_tag * *,struct inWorkSpace_tag *)(1, 0x00cdded8, 3, 0x00cddf38) + 164 bytes
[34] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(struct _mdUnknown_workspace *,int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 1, 0x00cdded8, 3) + 28 bytes
[35] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdded8, 3, 0x00cddf38) + 26 bytes
[36] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdded8, 3, 0x00cddf38) + 271 bytes
[37] m_interpreter.dll:int __cdecl mdDispatch(int,char const *,int,struct mxArray_tag * *,int,struct mxArray_tag * *,class Mfh_MATLAB_fn * *)(511, 0x02c35dac "maple", 1, 0x00cdded8) + 88 bytes
[38] m_interpreter.dll:_inDispatchFromStack(511, 0x02c35dac "maple", 1, 3) + 800 bytes
[39] m_interpreter.dll:enum opcodes __cdecl inDispatchCall(char const *,int,int,int,int *,int *)(0x02c35dac "maple", 511, 1, 3) + 145 bytes
[40] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *,int *)(1, 30, 7, 0) + 2534 bytes
[41] m_interpreter.dll:int __cdecl inInterPcodeSJ(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag *,int *)(1, 30, 7, 0) + 282 bytes
[42] m_interpreter.dll:int __cdecl inExecuteMFunctionOrScript(class Mfh_mp *,bool)(0x02f8bd20, 0, 1, 0x00cde6c0) + 724 bytes
[43] m_interpreter.dll:_inWordsj(1, 0x00cde660, 1, 0x00cde6c0) + 443 bytes
[44] m_interpreter.dll:public: void __thiscall Mfh_mp::inRunMP(int,struct mxArray_tag * *,int,struct mxArray_tag * *,struct inWorkSpace_tag *)(1, 0x00cde660, 1, 0x00cde6c0) + 164 bytes
[45] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(struct _mdUnknown_workspace *,int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 1, 0x00cde660, 1) + 28 bytes
[46] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cde660, 1, 0x00cde6c0) + 26 bytes
[47] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cde660, 1, 0x00cde6c0) + 271 bytes
[48] m_interpreter.dll:int __cdecl mdDispatch(int,char const *,int,struct mxArray_tag * *,int,struct mxArray_tag * *,class Mfh_MATLAB_fn * *)(418, 0x029a64f0 "sin", 1, 0x00cde660) + 88 bytes
[49] m_interpreter.dll:_inDispatchFromStack(418, 0x029a64f0 "sin", 1, 1) + 800 bytes
[50] m_interpreter.dll:enum opcodes __cdecl inDispatchCall(char const *,int,int,int,int *,int *)(0x029a64f0 "sin", 418, 1, 1) + 145 bytes
[51] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *,int *)(2, 0, 0, 0) + 2534 bytes
[52] m_interpreter.dll:int __cdecl inInterPcodeSJ(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag *,int *)(2, 0, 0, 0) + 282 bytes
[53] m_interpreter.dll:_inInterPcode(2, 0x784d6e7c "XnMx郒Hx燡Hx`IHxXnMx|nMx", 0, 0) + 81 bytes
[54] m_interpreter.dll:enum inExecutionStatus __cdecl in_local_call_eval_function(int *,struct _pcodeheader *,int *,struct mxArray_tag * * const,enum inDebugCheck)(0x00cdf278, 0x00cdf370, 2, 1) + 153 bytes
[55] m_interpreter.dll:$L74683(0x784d6e7c "XnMx郒Hx燡Hx`IHxXnMx|nMx", 0x02bfcc20 "f=sin(x)\n", 0, 0) + 184 bytes
[56] m_interpreter.dll:enum inExecutionStatus __cdecl inEvalCmdWithLocalReturnandtype(char const *,int *,enum inDebugCheck)(0x02bfcc20 "f=sin(x)\n", 0, 2, 0x00cdf3bc "D敉") + 69 bytes
[57] m_interpreter.dll:_inEvalCmdNoEnd(0x02bfcc20 "f=sin(x)\n", 1, 255, 0) + 16 bytes
[58] bridge.dll:enum inExecutionStatus __cdecl ThrowSignal(char const *)(0x02bfcc20 "f=sin(x)\n", 0x7c80b731, 0x01207628, 0x01207628) + 60 bytes
[59] bridge.dll:$L86781(0, 0, 0x784d6e58, 0x7c36b71f) + 432 bytes
[60] mcr.dll:public: void __thiscall mcrInstance::mnParser(void)(271256, 0x6d5c3a44, 0x5c687461, 0x4c54414d) + 93 bytes
[61] MATLAB.exe:0x00401ca9(4194304, 0, 271256, 0x01207628)
[62] MATLAB.exe:0x00403d9f(3407928, 3735602, 0x7ffd4000, 0xe26b6008)
[63] kernel32.dll:0x7c817067(0x00403c1a, 0, 0, 0)
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 External Interfaces Guide for information
on debugging MEX-files.
If it is an official MathWorks function, please
follow these steps in reporting this problem to The MathWorks so
that we have the best chance of correcting it:
1. Send this crash report to segv@mathworks.com for automated analysis.
For your convenience, this information has been recorded in:
E:\temp\matlab_crash_dump.436
2. Also, if the problem is reproducible, send the crash report to
support@mathworks.com along with:
- A specific list of steps that will reproduce the problem
- Any M, MEX, MDL or other files required to reproduce the problem
- Any error messages displayed to the command window
A technical support engineer will contact you with further information.
Thank you for your assistance. Please save your workspace and restart
MATLAB before continuing your work.
Error in ==> maple at 104
[result,status] = maplemex(statement);
Error in ==> sym.maple at 85
[result,status] = maple(statement);
Error in ==> sym.sin at 7
Y = maple('map','sin',X);
看上去好像和maple有关,执行maple命令,结果产生了下面的错误输出:
看来Matlab通过socket方式调用Maple实现符号计算功能,防火墙把网络一堵,它就崩溃了。本来都打算给MathWorks发错误报告了,后来无意中在防火墙里面允许了Matlab对网络的访问,一切又恢复了正常。