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))

Reply via email to