Hallo,
Ich bin auf einem AIX5.2 Server mit Oracle 10g und 9i. Mein Code kompiliert und funktioniert in 32-Bit-Modus. Der
gleichen Code kompiliert in 64-Bit-und läuft gut. Das Programm fängt CNTRL-C-Signal zu beenden. Nur auf 64-Bit-Code
wenn ich getroffen CNTRL-C, das Programm beendet mit Segmentation Fault auf dbx-Debugger. Das gesamte Programm läuft in einer während
in eine Endlosschleife, bis ein CNTRL-C ist hitted. Das Programm dauert von Oracle SQL und sendet in die Warteschlange. Es zeigt Fehler, wenn
Großteil der SQLs werden und nach mir dann CNTRL-C. Der Fehler ist
Segmentation fault in nsgetcinfo auf 0x900000002ccfd18 ($ t1)
0x900000002ccfd18 (nsgetcinfo 0 x38) e8dd02b0 ld R6, 0x2b0 (R29)
Der Fehler ist gleich, wenn ich getroffen CNTRL-C, wenn ich an jedem beliebigen Punkt in der while-Schleife. Deshalb bin ich nicht in der Lage, um das Problem.
Bitte helfen. Viele malloc und realloc verwendet wird. Alles, was zu ändern, während der Portierung von 32-Bit-auf 64-Bit?
Malloc Format ist
Code:
char *str1 = NULL;
int intStartIndex = 10; /*returns from other function*/
str1 = (char*)malloc((intStartIndex+1) * sizeof(char));
strcpy(str1,"");
strcpy(str1,str2); /*str2 is a character pointer with length 10*/