ngspice, malloc: el error interno no puede asignar -8 bytes

Soy nuevo en ngspice y trato de simular mi primer circuito. He publicado mi spice.net y mi simulación.cmd a continuación con una imagen de mi esquema. Cuando ejecuto la simulación me sale el mensaje de error:

malloc: el error interno no puede asignar -8 bytes.

¿Alguien sabe cuál podría ser el problema?

Gracias

* 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)

Interruptor de transistores

Esto parecería ser un error en esa versión de SPICE. ¿Hay un paquete actualizado? Alternativamente, la última versión de geda puede ser más nueva que la versión de su distribución.
Hola, gracias de nuevo por tu ayuda. Estoy tratando de reinstalar pero obtengo un error del compilador c. Tratar de averiguar cómo solucionarlo le permitirá saber el resultado.

Respuestas (2)

Tiene una línea con una sola 'P' y nada más en la descripción de su circuito. Esta línea es responsable del bloqueo de ngspice. Tendrá que buscar por qué su frontend geda ha generado esta línea.

Por supuesto, ngspice debería haber emitido un mensaje de error razonable en lugar de bloquearse. Por lo tanto, también podría considerar presentar un informe de errores en el rastreador de errores de ngpsice.

He quitado la P y no hubo diferencia, sigue el mismo error.
He vuelto a intentar el experimento. Si elimino la línea 'P', el error malloc desaparece. Además, he rastreado el problema hasta el archivo src/spicelib/parser/inp2p.c, que es responsable de analizar las líneas 'P' (también conocido como cplline, modelo de líneas acopladas). Este código falla al buscar los nodos del dispositivo (no tiene ninguno, num = (num - 2) / 2 se evaluará como -1, TMALLOC intentará asignar -1 * sizeof(char*) ...). Así que inténtalo de nuevo.

Malloc = asignación de memoria y es una construcción de biblioteca de software. Tu mazo de pspice no debería poder evocar esto, aunque tengas un error (o no). Sin embargo, esto también puede provenir de los archivos de modelo compilados. Es posible que no pueda solucionar esto usted mismo y que el autor se tome un tiempo para aislarlo y solucionarlo, por lo que sería bueno que reformateara su netlist de especias para aislar el problema. Al hacerlo, ayudas al autor (si le dices cómo lo amas) y te ayudas a ti mismo haciendo que algo funcione o al menos entendiendo cómo hacer que no vomite.

Comience a recortar las cosas y luego trate de aislar la causa.