On Fri, May 28, 2004 at 08:07:08AM +0200, Jörn Knie wrote: > A part of the content is as below: > > <BEGIN CODE> > /* Directions */ > #define IGT_HL_DIR_INCOM 0 /* IGT --> Host */ > #define IGT_HL_DIR_OUTGO 1 /* Host --> IGT */ > > #define IGT_HL_MIN_ERROR -3000 > > /* Error Codes returned from API functions */
> #define IGT_HL_MSG_TIMEOUT (IGT_MIN_ERROR+12) > #define IGT_HL_OK 1 > with the constants I get problems. For example the use of > banking::igtplus::IGT_HL_MSG_TIMEOUT causes a segmentation fault. but not > the use of banking::igtplus::IGT_HL_OK. From where this comes from? What > can I do? Is it possible to define these constants in igtplus.pm, and how > must I do that? The header file extract you supplied does not contain a definition for IGT_MIN_ERROR. I suspect that this may be the cause of your bug. If you change the line #define IGT_HL_MIN_ERROR -3000 to #define IGT_MIN_ERROR -3000 and recompile do the SEGVs go away? [My hunch is that the compiler issued some warnings about IGT_MIN_ERROR not being defined, assumed it to be a function name, and when you run your module it's trying to call an undefined function, hence your segfault] Nicholas Clark PS Your mailer did evil things to your source code - it wrapped some of the lines, and seems to have changed a lot of spaces (or maybe tabs) into non-breaking spaces (chr(160))