2011-01-17 8 views
0

Ich habe ein Programm entwickelt, das serielle Programmierung verwendet, um von der seriellen Schnittstelle zu lesen und zu schreiben und die Werte in Datenbanken in Ubuntu-Umgebung zu setzen. In letzter Zeit habe ich mit boost lib einige Funktionen hinzugefügt, um die Lesefunktion zu filtern. Aber wenn ich das Programm starte, sagen wir nach 15-20 Minuten, habe ich einen Segmentierungsfehler bekommen. Wenn ich die Protokolldatei überprüfe, die ich in meinem Programm definiert habe, habe ich folgende Zeilen darin. Ich habe keine Ahnung, worum es geht. Kann mir das jemand sagen?Allgemeine öffentliche GNU-Lizenz FEHLER?

a copy of the GNU General Public License   along with this 

Programm; Wenn nicht, schreiben Sie an die kostenlose Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA "," NU General Public License zusammen mit diesem Programm; Wenn nicht, schreiben Sie an die Freie Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA "," e
zusammen mit diesem Programm; falls nicht, schreiben Sie an die Freie Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA "," ram; wenn nicht, schreiben Sie an die Free Software
Foundation, Inc., 59 Temple Place, Suite 330 , Boston, MA "" e Frei Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA "," tion, Inc., 59 Temple Place, Suite 330, Boston, MA "," ass, Suite 330, Boston, MA "," MA "," "," ","
"," HUB-ARM „)

Danke und Gruß, SamPrat.

+3

Ich wollte diese Frage neu formulieren, bis ich realisierte, dass ich nicht einmal sicher weiß, was Teil der Frage ist und was nur fehlgeleitete Blockzettelformatierung ist. –

+0

Sie ... möchten, dass wir Ihnen mitteilen, was mit dem Programm auf der Grundlage einer Reihe fehlerhafter Protokollzeilen nicht stimmt? –

+2

Scheint, Sie haben die GPL verletzt, P – leppie

Antwort

6

Einfach ein nswer. Ihr Programm wurde segregiert. Das bedeutet, dass es nicht mehr funktioniert und sich schlecht verhalten kann.

In diesem Fall fing es an, eine Zeichenfolge auszugeben (wahrscheinlich nicht ordnungsgemäß beendet) und es wurde weiterhin den Programmspeicher ausgedruckt. Und Sie haben wahrscheinlich den GNU GPL-Lizenztext eingefügt, der lang ist. Die Möglichkeit, dass ein segupfuliertes Programm einige dieser Zeichenfolgen druckt, ist hoch.

Überprüfen Sie Ihre Speicherzuordnungen, Zeichenketten usw. Sie stehen vor einem Speicherfehler.

+0

Verwenden Sie Valgrind-Programm, um es zu verfolgen.Installieren Sie das Valgrind-Paket und führen Sie $ valgrind your_program aus, um den Fehler zu sehen. – lzap

+0

Danke Izap, für die Lösung. Ich habe den oben erwähnten Fehler nicht gesehen, aber wenn ich Valgrind ausgeführt habe und mysql_init gefunden habe und mysql_close wenige Probleme hat. Danke für die Hilfe – samprat

2

Meine Vermutung,

Sie drucken/eine abgebrochene Zeichenfolge verwendet wird. und wenn du es druckst, dann druckt es jeden Char bis es '/ 0' oder SEGFAULT :) erreicht, der GPL-Lizenztext ist zufällig am richtigen Ort.

+0

scheint, könnte es das Problem sein, werde ich versuchen, weiter zu untersuchen und lassen Sie es wissen. Danke – samprat

+0

lassen Sie uns wissen, wie es geht – hhafez