Menu

#173 op before tran causes segfault with filesrc

closed-fixed
parser (22)
5
2012-09-17
2011-12-31
sdaau
No

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!

Discussion

  • sdaau

    sdaau - 2011-12-31

    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

     
  • Holger Vogt

    Holger Vogt - 2011-12-31

    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

     
  • Holger Vogt

    Holger Vogt - 2011-12-31
    • labels: --> parser
     
  • Holger Vogt

    Holger Vogt - 2011-12-31
    • assigned_to: nobody --> h_vogt
     
  • Holger Vogt

    Holger Vogt - 2012-01-01

    Sdauu,

    you may try the most recent update in CVS. The bug should be removed.

    Regards

    Holger

     
  • Holger Vogt

    Holger Vogt - 2012-01-04

    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

     
  • Holger Vogt

    Holger Vogt - 2012-09-07
    • status: open --> open-fixed
     
  • Holger Vogt

    Holger Vogt - 2012-09-07

    update to filesource code model pushed to git repository
    'reset' may no longer be needed between 'op' and 'tran'
    Holger

     
  • Holger Vogt

    Holger Vogt - 2012-09-17
    • status: open-fixed --> closed-fixed
     

Log in to post a comment.