Relatively recent ngspice-23 from CVS; I'm trying to simulate the following simple file:
----
.model filesrc filesource (file="my-source.text"
+ amploffset=[0.1 0.1] amplscale=[3.0 3.0]
+ timeoffset=0 timescale=1
+ timerelative=false amplstep=true)
A1 %vd([1 0 N_IN 0]) filesrc
Rload N_IN 0 1k
.control
option NOINIT ACCT
echo ...........
set hcopypscolor=1
op
tran 5ns 2620us
display
.endc
.end
----
It crashes with "Segmentation fault"; running via gdb --args says:
Program received signal SIGSEGV, Segmentation fault.
0x005118a7 in cm_filesource (mif_private=0xbfffe2c0) at cfunc.mod:168
168 cfunc.mod: No such file or directory.
in cfunc.mod
... so apparently a problem with filesource - however, if the "op" command is removed, all works fine.
Since I've previously used "op" before "tran" command without a problem in a control section, I'd believe this is a bug?
Thanks for looking into this,
Cheers!
This is probably related so I'll post as a comment - if in the above example, "op" is replaced with "iplot N_IN" - again there is a crash; but this time a buffer overflow - the following is output in terminal (forgot to say previously, this is on Ubuntu Linux):
Reducing trtol to 1 for xspice 'A' devices
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
*** buffer overflow detected ***: ngspice terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x50)[0x499df0]
/lib/i386-linux-gnu/libc.so.6(+0xe4cca)[0x498cca]
/lib/i386-linux-gnu/libc.so.6(+0xe401f)[0x49801f]
ngspice[0x809332b]
ngspice[0x8093d30]
ngspice[0x808f55e]
ngspice[0x808fc0a]
ngspice[0x808ff16]
ngspice[0x8090511]
ngspice[0x80769df]
ngspice[0x83493f3]
ngspice[0x8343b69]
ngspice[0x83396f2]
ngspice[0x8083cc9]
ngspice[0x807fd1c]
ngspice[0x80801c0]
ngspice[0x80542c8]
ngspice[0x805524e]
ngspice[0x80662cc]
ngspice[0x804bb92]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x3cae37]
ngspice[0x804aeb1]
======= Memory map: ========
00110000-00127000 r-xp 00000000 08:05 130862 /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
00127000-00128000 r--p 00016000 08:05 130862 /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
00128000-00129000 rw-p 00017000 08:05 130862 /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
00129000-0012c000 r-xp 00000000 08:05 936 /lib/i386-linux-gnu/libuuid.so.1.3.0
0012c000-0012d000 r--p 00002000 08:05 936 /lib/i386-linux-gnu/libuuid.so.1.3.0
0012d000-0012e000 rw-p 00003000 08:05 936 /lib/i386-linux-gnu/libuuid.so.1.3.0
0012e000-00132000 r-xp 00000000 08:05 136649 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
00132000-00133000 r--p 00003000 08:05 136649 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
00133000-00134000 rw-p 00004000 08:05 136649 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
00134000-00137000 r-xp 00000000 08:06 417038 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/xtraevt/xtraevt.cm
00137000-00138000 r--p 00003000 08:06 417038 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/xtraevt/xtraevt.cm
00138000-00139000 rw-p 00004000 08:06 417038 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/xtraevt/xtraevt.cm
00139000-0013d000 r-xp 00000000 08:05 136653 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
0013d000-0013e000 r--p 00003000 08:05 136653 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
0013e000-0013f000 rw-p 00004000 08:05 136653 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
00173000-00197000 r-xp 00000000 08:05 1201 /lib/i386-linux-gnu/libm-2.13.so
00197000-00198000 r--p 00023000 08:05 1201 /lib/i386-linux-gnu/libm-2.13.so
00198000-00199000 rw-p 00024000 08:05 1201 /lib/i386-linux-gnu/libm-2.13.so
00212000-0022e000 r-xp 00000000 08:05 1202 /lib/i386-linux-gnu/ld-2.13.so
0022e000-0022f000 r--p 0001b000 08:05 1202 /lib/i386-linux-gnu/ld-2.13.so
0022f000-00230000 rw-p 0001c000 08:05 1202 /lib/i386-linux-gnu/ld-2.13.so
00299000-003af000 r-xp 00000000 08:05 132726 /usr/lib/i386-linux-gnu/libX11.so.6.3.0
003af000-003b0000 ---p 00116000 08:05 132726 /usr/lib/i386-linux-gnu/libX11.so.6.3.0
003b0000-003b1000 r--p 00116000 08:05 132726 /usr/lib/i386-linux-gnu/libX11.so.6.3.0
003b1000-003b3000 rw-p 00117000 08:05 132726 /usr/lib/i386-linux-gnu/libX11.so.6.3.0
003b3000-003b4000 rw-p 00000000 00:00 0
003b4000-0050e000 r-xp 00000000 08:05 729 /lib/i386-linux-gnu/libc-2.13.so
0050e000-0050f000 ---p 0015a000 08:05 729 /lib/i386-linux-gnu/libc-2.13.so
0050f000-00511000 r--p 0015a000 08:05 729 /lib/i386-linux-gnu/libc-2.13.so
00511000-00512000 rw-p 0015c000 08:05 729 /lib/i386-linux-gnu/libc-2.13.so
00512000-00515000 rw-p 00000000 00:00 0
00610000-0065e000 r-xp 00000000 08:05 136665 /usr/lib/i386-linux-gnu/libXt.so.6.0.0
0065e000-0065f000 r--p 0004d000 08:05 136665 /usr/lib/i386-linux-gnu/libXt.so.6.0.0
0065f000-00662000 rw-p 0004e000 08:05 136665 /usr/lib/i386-linux-gnu/libXt.so.6.0.0
00794000-007a3000 r-xp 00000000 08:05 133939 /usr/lib/libXpm.so.4.11.0
007a3000-007a4000 r--p 0000e000 08:05 133939 /usr/lib/libXpm.so.4.11.0
007a4000-007a5000 rw-p 0000f000 08:05 133939 /usr/lib/libXpm.so.4.11.0
007b2000-007c6000 r-xp 00000000 08:05 136633 /usr/lib/i386-linux-gnu/libICE.so.6.3.0
007c6000-007c7000 r--p 00013000 08:05 136633 /usr/lib/i386-linux-gnu/libICE.so.6.3.0
007c7000-007c8000 rw-p 00014000 08:05 136633 /usr/lib/i386-linux-gnu/libICE.so.6.3.0
007c8000-007ca000 rw-p 00000000 00:00 0
007e1000-007ee000 r-xp 00000000 08:06 407489 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/analog/analog.cm
007ee000-007ef000 r--p 0000c000 08:06 407489 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/analog/analog.cm
007ef000-007f7000 rw-p 0000d000 08:06 407489 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/analog/analog.cm
008e5000-008ed000 r-xp 00000000 08:05 136645 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
008ed000-008ee000 r--p 00007000 08:05 136645 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
008ee000-008ef000 rw-p 00008000 08:05 136645 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
008f5000-008f6000 r-xp 00000000 00:00 0 [vdso]
009a0000-009a2000 r-xp 00000000 08:05 1199 /lib/i386-linux-gnu/libdl-2.13.so
009a2000-009a3000 r--p 00001000 08:05 1199 /lib/i386-linux-gnu/libdl-2.13.so
009a3000-009a4000 rw-p 00002000 08:05 1199 /lib/i386-linux-gnu/libdl-2.13.so
009af000-009bc000 r-xp 00000000 08:05 136651 /usr/lib/i386-linux-gnu/libXext.so.6.4.0
009bc000-009bd000 r--p 0000c000 08:05 136651 /usr/lib/i386-linux-gnu/libXext.so.6.4.0
009bd000-009be000 rw-p 0000d000 08:05 136651 /usr/lib/i386-linux-gnu/libXext.so.6.4.0
00ab0000-00ab6000 r-xp 00000000 08:05 136635 /usr/lib/i386-linux-gnu/libSM.so.6.0.1
00ab6000-00ab7000 r--p 00005000 08:05 136635 /usr/lib/i386-linux-gnu/libSM.so.6.0.1
00ab7000-00ab8000 rw-p 00006000 08:05 136635 /usr/lib/i386-linux-gnu/libSM.so.6.0.1
00b53000-00ba8000 r-xp 00000000 08:05 133929 /usr/lib/libXaw7.so.7.0.0
00ba8000-00ba9000 r--p 00054000 08:05 133929 /usr/lib/libXaw7.so.7.0.0
00ba9000-00baf000 rw-p 00055000 08:05 133929 /usr/lib/libXaw7.so.7.0.0
00baf000-00bb0000 rw-p 00000000 00:00 0
00c33000-00c47000 r-xp 00000000 08:05 133933 /usr/lib/libXmu.so.6.2.0
00c47000-00c48000 r--p 00014000 08:05 133933 /usr/lib/libXmu.so.6.2.0
00c48000-00c49000 rw-p 00015000 08:05 133933 /usr/lib/libXmu.so.6.2.0
00c9a000-00c9d000 r-xp 00000000 08:06 410533 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/spice2poly/spice2poly.cm
00c9d000-00c9e000 r--p 00002000 08:06 410533 /path/to/ngspice-cvs/ngspice/ng-spice-rework/src/xspice/icm/spice2poly/spice2poly.cmAborted
Sdaau,
this is obviously a a bug.
Youi may out 'reset' betwenn op and tran.
Can you check, please, or do you knpw if a crash occurs choosing other XSPICE models, when 'tran' follows 'op' ?
Regards
Holger
Sdauu,
you may try the most recent update in CVS. The bug should be removed.
Regards
Holger
Sdaau,
the recent patch has been withdrawn again, because it had some adverse effects in other places. It is safe however, to place a 'reset' between 'op' and 'tran'.
If you issue 'alter' commands to change some parameters, do it after the 'reset'.
Holger
update to filesource code model pushed to git repository
'reset' may no longer be needed between 'op' and 'tran'
Holger