nobody0
06-09-2002, 01:23
Arbeitet das lefence auch bei C++-Programmen richtig? :confused:
Ich habe nämlich ein C++-Programm einmal mit dieser Funktion in profile compiliert:
# Funktion zum Kompilieren. Bsp.: "h bsp" kompiliert bsp.c und produziert bsp.
function g {
g++ -O3 -D__SMP__ -D_REENTRANT -mcpu=i686 -fexpensive-optimizations -DCPU=686 -ffast-math -m486 -lm -Wall -o $1 $1.c; strip $1
}
und einmal mit dieser Funktion:
# Funktion zum Kompilieren mit lefence u. zus. gdb-Informationen.
# Bsp.: "h bsp" kompiliert bsp.c und produziert bsp.
# Version von function c zum auffinden von Bereichsüberschreitungen (Segmentation faults).
# Benötigt: efence (Electric Fence). # -lvga
function h {
g++ -O3 -D__SMP__ -D_REENTRANT -lm -lvga -Wall -pedantic -ggdb -lefence -o $1 $1.c
}
Und nur mit der 2., also mit lefence, bekomme ich ein Segmentation fault, der sofort beim Start von main passiert, wie list zeigt:
823 fflush(ofp);
824 if ( ofp != NULL )
825 fclose(ofp);
826 ofp=NULL;
827 return(0);
828 }
829
830 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
831
832 int main()
Funktioniert das lefence bei C++-Programmen nicht richtig? :confused:
Ich habe nämlich ein C++-Programm einmal mit dieser Funktion in profile compiliert:
# Funktion zum Kompilieren. Bsp.: "h bsp" kompiliert bsp.c und produziert bsp.
function g {
g++ -O3 -D__SMP__ -D_REENTRANT -mcpu=i686 -fexpensive-optimizations -DCPU=686 -ffast-math -m486 -lm -Wall -o $1 $1.c; strip $1
}
und einmal mit dieser Funktion:
# Funktion zum Kompilieren mit lefence u. zus. gdb-Informationen.
# Bsp.: "h bsp" kompiliert bsp.c und produziert bsp.
# Version von function c zum auffinden von Bereichsüberschreitungen (Segmentation faults).
# Benötigt: efence (Electric Fence). # -lvga
function h {
g++ -O3 -D__SMP__ -D_REENTRANT -lm -lvga -Wall -pedantic -ggdb -lefence -o $1 $1.c
}
Und nur mit der 2., also mit lefence, bekomme ich ein Segmentation fault, der sofort beim Start von main passiert, wie list zeigt:
823 fflush(ofp);
824 if ( ofp != NULL )
825 fclose(ofp);
826 ofp=NULL;
827 return(0);
828 }
829
830 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
831
832 int main()
Funktioniert das lefence bei C++-Programmen nicht richtig? :confused: