2016-08-01 12 views
1

Ich habe ein Java-Programm, das einen Z3-Prozess startet und mit ihm interagiert, indem er seine stdin/out erfasst, SMTLIB2-Befehle sendet und seine Antworten liest.Z3 stirbt bei der Interaktion mit einem Java-Programm

Auf OSX dies funktioniert gut, aber auf Linux kommt es häufig vor, dass zwar von seinem stdout Lesen unerwartet Z3 stirbt mit dem Fehlercode 139.

Was bedeutet dieser Code Fehler entdeckt?

+0

Mögliches Duplikat von https://stackoverflow.com/questions/38409443/bit-vector-tactic-leads-to-exit-code-139-in-z3py - welche Version von Z3 und was ist der Code, der 139 verursacht ? – Rob

+0

Linux-Systeme geben Fehler 128 + Signal zurück, wenn ein Signal empfangen wurde. 128 + 11 = 139. Kenne 11 ist SIGSEV (d. H. Segmentierungsverletzung). = Es gibt einen Speicherzugriffsfehler in einigen C++ - Code. – MikeJRamsey56

+0

Danke für die Rückmeldung, die Version von Z3 ist 4.4.1. Heute habe ich geklont und den Master-Zweig von Z3 erstellt und es scheint, dass das Problem behoben ist. –

Antwort

0

Die Antwort wurde in den Kommentaren beigetragen. Von MikeJRamsey56, der Code 139 ist 128 + 11, wobei 11 SIGSEV ist, eine Segmentierungsverletzung. Aus dem OP scheint dies ein Fehler in Z3 4.4.1 zu sein, der inzwischen behoben wurde.