J'essaie de profiler mon application. Pour cela j'ai compilé mon code avec l'option -pg et -lc_p, il a compilé avec succèsdans free(): erreur: pointeur indésirable, trop élevé pour donner un sens Défaut de segmentation: 11 (noyau vidée) gprof
Pendant l'exécution j'obtiens l'erreur suivante. dans free(): erreur: pointeur indésirable, trop élevé pour donner un sens Erreur de segmentation: 11 (noyau exporté)
L'exécution de GDB génère une erreur.
(gdb) b main
Breakpoint 1 at 0x5124d4:
(gdb) r
warning: Unable to get location for thread creation breakpoint: generic error
[New LWP 100085]
cacheIp in free(): error: junk pointer, too high to make sense
Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 100085]
0x00000000006c3a1f in pthread_sigmask()
Mon application est multi-threadée et est une combinaison de code C et C++.
uname -a
FreeBSD 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Wed Jan 16 01:43:02 UTC 2008 [email protected]:/usr/obj/usr/src/sys/SMP amd64
Le code fonctionne correctement sans l'option -pg. Pourquoi le code plante -pg. Est-ce que j'ai raté quelque chose?
Pourquoi le code plante-t-il? – Mayank