Efence mit SIGSEGV, valgrind ohne Fehler

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Efence mit SIGSEGV, valgrind ohne Fehler

Beitrag von gn#36 »

Hallo zusammen,

vermutlich sind hier nicht allzuviele Leute unterwegs, die mit dem Debugging von C Programmen unter Linux viel Erfahrung haben, aber ich probier's trotzdem mal:

Mein Programm legt dynamisch Speicher an (malloc oder calloc), verwendet diesen und gibt ihn anschließend wieder frei. Da man hier gerne mal was falsch macht habe ich das ganze mal mit -lefence kompiliert und habe auch prompt einen Fehler gefunden - normalerweise schlägt Efence ja genau bei der Anweisung die den Fehler verursacht Alarm. Das war in dem Fall allerdings ein malloc, woraus ich nicht so recht schlau wurde. Also habe ich das Programm mit valgrind untersucht um potenzielle Probleme zu entdecken - auch hier habe ich einiges gefunden, diese Fehler sind inzwischen aber raus, valgrind spuckt keine Fehler mehr aus. Trotzdem schlägt Efence noch immer bei der selben malloc Anweisung Alarm.

Um auszuschließen, dass das ganze von einem früheren Fehler verursacht wird habe ich das Programm anschließend auf die notwendigsten Segmente gekürzt, so dass effektiv jetzt nur noch Speicher festgelegt und freigegeben wird. Valgrind meldet wieder keine Probleme, efence schon, immer noch an der selben Stelle. Ich nutze die Pakete aus den üblichen Paketquellen für Ubuntu 12.04.

Hat jemand eine Idee, woran das liegen könnte?

Hier das minimalisierte Beispiel: https://www.phpbb.de/support/pastebin.p ... iew&s=1235 (die seltsame Benutzung von jeweils zwei Variablen für die drei Dimensionen hat historische Gründe)
Kompiliert wurde mit gcc -Wall -o test -ggdb <quellcodedatei>.c bzw. gcc -Wall -o test -ggdb <quellcodedatei>.c -lefence. -Wextra spuckt auch nichts zusätzliches aus.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“