Does anyone have any idea what this means:
#### #### FDE 0x2aea4 (OB 0x13fd60, fde_end 0x2affc) has zero length!Aborting. #### Abort
I am trying to use the Authorization code with GPC. If I write the code in C, it works fine. If I write the code in GPC, it works unless the user cancels the authorization dialog, in which case it gets the above error.
I'm running out of ideas as to what the problem might be.
I found this reference:
Index: unwind-dw2-fde.c =================================================================== RCS file: /cvs/Darwin/src/live/gcc3/gcc/unwind-dw2-fde.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- unwind-dw2-fde.c 2002/09/10 20:53:31 1.30 +++ unwind-dw2-fde.c 2002/11/07 20:33:20 1.31 @ @-1,5 +1,5 @ @ /* Subroutines needed for unwinding stack frames for exception handling. */ -/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Jason Merrill <jason@ cygnus.com>.
This file is part of GCC. @ @-38,203 +38,7 @ @#include "unwind-dw2-fde.h" #include "gthr.h" #endif -/* APPLE LOCAL declare string functions */ -#include <string.h>
-/* APPLE LOCAL begin fde end extension */ -#ifdef DWARF2_OBJECT_END_PTR_EXTENSION -static inline int VALID_FDE_P(struct object *OB, struct dwarf_fde *FDE) -{ - if ((char *)FDE < OB->dwarf_fde_end) - { - if (FDE->length <= 0) - { - printf ("####\n#### FDE %p (OB %p, fde_end %p) has zero length!" - "Aborting.\n####\n", FDE, OB, OB->dwarf_fde_end); - abort(); - } - else - return 1; - } - return 0; -} -#else -#define VALID_FDE_P(OB, FDE) ((FDE)->length != 0) -#endif -/* APPLE LOCAL end fde end extension */
Which seems to indicate that the code has been removed from gcc and it is related to unwiding the stack somehow, perhaps exception handling?
It's possible I've badly translated the Authorization[Tags].h files, but I'm getting a bit desperate for an idea on where the problem might lie, so if anyone has any clues, that'd be appreciated.
Thanks, Peter.