ngspice, malloc: interner Fehler kann -8 Bytes nicht zuweisen

Ich bin neu bei ngspice und versuche, meine erste Schaltung zu simulieren. Ich habe mein spice.net und meine simulation.cmd unten mit einem Bild meines Schaltplans gepostet. Beim Ausführen der Simulation erhalte ich die Fehlermeldung:

malloc: interner Fehler kann -8 Bytes nicht zuweisen.

Weiß jemand, was das Problem sein könnte?

Danke

* gnetlist -g spice-sdb -o spice.net v-monitor.sch
************************************************** *******
* Spice file generated by gnetlist *
* spice-sdb version 4.28.2007 by SDB -- *
* provides advanced spice netlisting capability. *
* Documentation at http://www.brorson.com/gEDA/SPICE/ *
************************************************** *******
*vvvvvvvv Included SPICE model from /home/matt/Documents/gEDA/model/BC108.mod vvvvvvvv
.MODEL BC108 NPN(Is=1.8E-14 Ise=5.0E-14 Nf=.9955 Ne=1.46 Bf=400
+ Br=35.5 Ikf=.14 Ikr=.03 Isc=1.72E-13 Nc=1.27 Nr=1.005
+ Rb=.56 Re=.6 Rc=.25 Vaf=80 Var=12.5
+ Cje=13E-12 Cjc=4E-12 Vjc=.54 Mjc=.33
+ Tf=.64E-9 Tr=50.72E-9)
* ST pid=23 case=TO18

*^^^^^^^^ End of included SPICE model from /home/matt/Documents/gEDA/models/BC108.mod ^^^^^^^^
*
*vvvvvvvv Included SPICE model from /home/matt/Documents/gEDA/models/BC178.mod vvvvvvvv
.model BC178 pnp(IS=3.50E-15 VAF=80.5 BF=330 IKF=0.1018 NE=1.3140
+ ISE=3.816E-16 IKR=0.03 ISC=5.00E-13 NC=1.6 NR=1 BR=5 RC=0.35
+ CJC=8.80E-12
+ FC=0.5 MJC=0.28 VJC=1 CJE=1.00E-11 MJE=0.38 VJE=0.4 TF=7.00E-10
+ ITF=0.6 VTF=3 XTF=11.5 RB=100 IRB=0.0001 RBM=10 RE=0.75
+ TR=2.00E-07)
*

*^^^^^^^^ End of included SPICE model from /home/matt/Documents/gEDA/models/BC178.mod ^^^^^^^^
*
*============== Begin SPICE netlist of main design ============
.INCLUDE /home/matt/Documents/gEDA/Simulation.cmd
Vcc Vcc 0 DC 15V
Rnb 4 3 4K
Rpb 2 5 22K
Q2 1 5 Vcc BC178
Vpulse 4 0 pulse 0 5 1m 1u 1u 1m 3m
Q1 2 3 0 BC108
R2 0 Vout 1K
R1 Vout 1 2K
.end

P
* .AC DEC 20 1Hz 100MegHz
.DC Vpulse 0 5 .01
* .DC VINPUT 1 2 .01
.plot dc v(Vout) v(Vin)
.print dc v(Vout) v(Vin)

Transistorschalter

Dies scheint ein Fehler in dieser Version von SPICE zu sein. Gibt es ein aktualisiertes Paket? Alternativ kann die neueste Version von geda neuer sein als die Version Ihrer Distribution.
Hallo, danke nochmal für deine Hilfe. Ich versuche, neu zu installieren, erhalte aber einen C-Compiler-Fehler. Wenn Sie versuchen, herauszufinden, wie Sie das Problem beheben können, erfahren Sie das Ergebnis.

Antworten (2)

Sie haben eine Zeile mit einem einzelnen 'P' und sonst nichts in Ihrer Schaltungsbeschreibung. Diese Zeile ist für den Absturz von ngspice verantwortlich. Sie müssen suchen, warum Ihr geda-Frontend diese Zeile generiert hat.

Natürlich hätte ngspice eine vernünftige Fehlermeldung ausgeben sollen, anstatt abzustürzen. Daher könnten Sie in Betracht ziehen, auch einen Fehlerbericht über den ngpsice-Fehlertracker einzureichen.

Ich habe das P entfernt und es gab keinen Unterschied, immer noch der gleiche Fehler.
Ich habe das Experiment wiederholt. Wenn ich die 'P'-Zeile entferne, verschwindet der Malloc-Fehler. Außerdem habe ich das Problem in der Datei src/spicelib/parser/inp2p.c aufgespürt, die für das Parsen von 'P'-Zeilen (auch bekannt als cplline, Coupled Lines Model) verantwortlich ist. Dieser Code schlägt fehl, wenn nach den Geräteknoten gesucht wird (Sie haben keine, num = (num - 2) / 2 wird zu -1 ausgewertet, TMALLOC versucht, -1 * sizeof(char*) zuzuweisen ...). Also bitte versuchen Sie es erneut.

Malloc = Speicherzuweisung und ist ein Softwarebibliothekskonstrukt. Ihr Pspice-Deck sollte dies nicht hervorrufen können, selbst wenn Sie einen Fehler haben (oder nicht). Dies kann jedoch auch aus den kompilierten Modelldateien stammen. Möglicherweise können Sie dies nicht selbst beheben, und der Autor benötigt möglicherweise einige Zeit, um es zu isolieren und zu beheben. Sie wären also ein guter Server, um Ihre Spice-Netzliste neu zu formatieren, um das Problem zu isolieren. Dabei hilfst du dem Autor (wenn du ihm sagst, wie sehr du es magst) und du hilfst dir selbst, indem du etwas zum Laufen bringst oder zumindest verstehst, wie man dafür sorgt, dass es nicht kotzt.

Beginnen Sie mit dem Trimmen und versuchen Sie dann, die Ursache zu isolieren.