mex debugging, integer division cause crash?
显示 更早的评论
Obviously, I am doing something wrong, and my code is too complex to repeat here. I have tried to distill the parts that seems pertinent. Anyone have any good ideas?
static void myfunc(unsigned char arr[], int n, int m) {
uint64_t nom = 255;
uint64_t den = arr[0];
uint64_t y = nom/den;//cause crashing
//uint64_t y = nom*den;//no problem
//uint64_t y = nom/42;//no problem
}
Windows platform:
Caught MathWorks::System::FatalException
OSX:
"MATLAB has encountered an internal problem and needs to close" (floating point exception detected)
The stack trace suggests my mex file calling libSystem.B.dylib, libmwmcr.dylib, libmwfl.dylib.
I am confused by the fact that I am able to "touch" the variable when doing multiplication, but as soon as I do a division, MATLAB seems to think that there is a floating point exception??
回答(1 个)
Jan
2012-9-12
0 个投票
This seem magic. And whenever magic things happen in the computer, they are deterministic effects of things, which happen somewhere else.
Please try to run your code from a clean and bug free main function. If and only if this is still crashing, I'm convinved that the bug is inside myfunc().
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!