From: Simon C. <sim...@ip...> - 2013-10-02 10:05:56
|
Hi, Here's the running commentary is this ok? I ran again using gdb. (First time I've used it since I was an undergraduate). > [stc@stcVirtual ngspice-dbg]$ gdb ngspicedev > GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1) > Copyright (C) 2010 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "x86_64-redhat-linux-gnu". > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>... > Reading symbols from /usr/local/bin/ngspicedev...done. > (gdb) r test.cir > Starting program: /usr/local/bin/ngspicedev glblTest.cir > ****** > ** ngspice-25 : Circuit level simulation program > ** The U. C. Berkeley CAD Group > ** Copyright 1985-1994, Regents of the University of California. > ** Please get your ngspice manual from > http://ngspice.sourceforge.net/docs.html > ** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html > ** Creation Date: Thu Sep 26 14:41:23 BST 2013 > ****** > > Program received signal SIGSEGV, Segmentation fault. > 0x000000000041d7b7 in skip_back_ws (d=0x0) at inpcom.c:133 > 133 static char *skip_back_ws(char *d) { while (isspace(d[-1])) > d--; return d; } > Missing separate debuginfos, use: debuginfo-install > glibc-2.12-1.107.el6_4.2.x86_64 libICE-1.0.6-1.el6.x86_64 > libSM-1.2.1-2.el6.x86_64 libX11-1.5.0-4.el6.x86_64 libXau-1.0.6-4.el6.x86_64 > libXaw-1.0.11-2.el6.x86_64 libXext-1.3.1-2.el6.x86_64 > libXmu-1.1.1-2.el6.x86_64 libXpm-3.5.10-2.el6.x86_64 libXt-1.1.3-1.el6.x86_64 > libuuid-2.17.2-12.9.el6_4.3.x86_64 libxcb-1.8.1-1.el6.x86_64 > (gdb) bt > #0 0x000000000041d7b7 in skip_back_ws (d=0x0) at inpcom.c:133 > #1 0x000000000041e03b in inp_fix_ternary_operator_str (line=0x38b5a20 > "(s>=120n?90n : 0)", all=1) at inpcom.c:1837 > #2 0x000000000041e288 in inp_fix_ternary_operator_str (line=0x38b5970 > "(s<105n?65n :((s<120n&& s>=105n)? 80n :(s>=120n?90n : 0)))", all=1) > at inpcom.c:1933 > #3 0x000000000041e1e6 in inp_fix_ternary_operator_str ( > line=0x385a530 ".func opcdwe_f(w,s,metallevel) {(w<65n?(s<105n?65n > :((s<120n&& s>=105n)? 80n :(s>=120n?90n : 0)))", all=1) > at inpcom.c:1905 > #4 0x0000000000425961 in inp_fix_ternary_operator (fp=<value optimized out>, > call_depth=0, dir_name=0x0, comfile=0, intfile=12165536) > at inpcom.c:2004 > #5 inp_readall (fp=<value optimized out>, call_depth=0, dir_name=0x0, > comfile=0, intfile=12165536) at inpcom.c:842 > #6 0x000000000041b40e in inp_spsource (fp=0xb99e90, comfile=0, filename=0x0, > intfile=0) at inp.c:318 > #7 0x0000000000404918 in main (argc=2, argv=0x7fffffffe3a8) at main.c:1228 > So the problem is in the lines: question = strchr(str_ptr, '?'); str_ptr2 = skip_back_ws(question); I'm guessing that the '?' is missing so question is NULL and it goes downhill from there. I've inserted: printf("DBG: question=%08X\n", (unsigned int)question); in-between the lines and I am re-running now Sure enough: > [stc@stcVirtual ngspice-dbg]$ ngspicedev glblTest.cir > ****** > ** ngspice-25 : Circuit level simulation program > ** The U. C. Berkeley CAD Group > ** Copyright 1985-1994, Regents of the University of California. > ** Please get your ngspice manual from > http://ngspice.sourceforge.net/docs.html > ** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html > ** Creation Date: Thu Sep 26 14:41:23 BST 2013 > ****** > DBG: question=051D1557 > DBG: question=0522C990 > DBG: question=00000000 > Segmentation fault (core dumped) > [stc@stcVirtual ngspice-dbg]$ To be continued Simon From: Simon Chang <sim...@ip...> Date: Friday, 6 September 2013 10:18 To: "Ngspice developers mailing list." <ngs...@li...> Subject: Re: [Ngspice-devel] Question about temperature parameter D'oh! I should have tried "grep -i" The model uses a function call syntax - is this legal NGSpice? e.g. .param foo(x,y)='x+2*y' .param z='foo(2,3)' Also, I reversed the .param changes discussed in the previous email (multiple params) and more errors appear with what look like corrupted strings. So I strongly suspect that there's a finite buffer size used to merge multiple lines with "+" prefixes that maxes out. Simon On 6 Sep 2013, at 10:12, Holger Vogt <hol...@un...> wrote: > like'cor_cacc_cox_dgpcap_bb_n |