The issue was discussed here:
https://forum.kicad.info/t/trying-to-get-ngspice-working-on-fedora/14628
If you tell me what my "coding policy errors" are, or point me to something I
should read, then I can do better next time.
I've attached a new copy of the patch - the code change is identical, the only
difference is that it has the commit message prepended.
Steve
On 1/14/19 12:50 PM, Wayne Stambaugh wrote:
> Steve,
>
> Please include the bug report link so I can link the patch to the bug
> report. I'll fix the coding policy errors since I'm assuming this is as
> one a done patch for you.
>
> Tom or Orson,
>
> Any objections to this patch. I didn't test it but on the surface it
> appears to resolve the issue.
>
> Cheers,
>
> Wayne
>
> On 1/14/2019 10:30 AM, Steven A. Falco wrote:
>> I wanted to close the loop on the SIGTRAP crash that I reported a few days
>> ago.
>>
>> The issue is probably unique to Fedora, and stems from a huge quantity of
>> "percent complete" messages that the ngspice library passes back to KiCad.
>> I'm not kidding when I say huge - it amounts to over 1 megabyte of text,
>> including many backspace characters. When I try to select the text, it
>> probably blows up the clipboard and causes the crash.
>>
>> The ideal fix will be to have the Fedora ngspice maintainer remove a flag,
>> which in turn will disable the "percent complete" messages.
>>
>> In the interim, I have a patch that filters out any line containing a string
>> of backspaces. I don't know if there is any interest in applying this patch
>> to the official KiCad sources, but I've attached it here in case there is
>> interest. I see it as defensive programming. :-)
>>
>> I'll wait a bit to see what happens with the ngspice library. If it looks
>> like there will be a substantial delay in having the flag removed, I can
>> always apply my patch and push that as the next official Fedora build.
>>
>> Steve
>>
>> On 1/11/19 2:25 PM, Steven A. Falco wrote:
>>> On 1/11/19 1:51 PM, Steven A. Falco wrote:
>>>> On 1/11/19 1:21 PM, Seth Hillbrand wrote:
>>>>> Am 2019-01-11 12:18, schrieb Steven A. Falco:
>>>>>> I tried another ngspice experiment. I ran a simulation, and it
>>>>>> worked, albeit with the data size warning I asked about earlier. So
>>>>>> far so good.
>>>>>
>>>>> That warning was saying that it ran out of memory and had overwritten
>>>>> unplanned space. I would expect a crash after that. I'm not sure that
>>>>> KiCad can trap that kind of error as it occurred inside the library.
>>>>
>>>> Ok, but I'm concerned about the bug reports I'll get if I were to enable
>>>> ngspice and push the build to the Fedora community.
>>>>
>>>> I'll wait to see if the forum has any thoughts on the warning. I'll only
>>>> enable ngspice in the official Fedora builds if I can get to where the
>>>> examples run cleanly.
>>>
>>> I saved the netlist from the simple example I've been running:
>>>
>>> .title KiCad schematic
>>> V101 in 0 PULSE (0 5 1u 1u 1u 1 1)
>>> C101 Net-_C101-Pad1_ 0 1u
>>> C102 out 0 100n
>>> R101 Net-_C101-Pad1_ in 10k
>>> R102 out Net-_C101-Pad1_ 1k
>>> .save @v101[i]
>>> .save @c101[i]
>>> .save @c102[i]
>>> .save @r101[i]
>>> .save @r102[i]
>>> .save V(0)
>>> .save V(GND)
>>> .save V(Net-_C101-Pad1_)
>>> .save V(in)
>>> .save V(out)
>>> .tran 1u 100m
>>> .end
>>>
>>> When I run this circuit in stand-alone ngspice, it does a lot of
>>> overprinting, apparently to indicate the run-time of the job. Here is a
>>> small example of the character stream, where there are tons of backspaces
>>> as part of the overprinting:
>>>
>>> saf$ od -c foo
>>> 0000000 % 0 . 0 0 \b \b \b \b \b % 0 . 0 0 \b
>>> 0000020 \b \b \b \b % 0 . 0 0 \b \b \b \b \b % 0
>>> 0000040 . 0 0 \b \b \b \n
>>> 0000047
>>>
>>> The stand-alone captured output from this simple circuit is around 1 Mbyte!
>>> I'm guessing that this huge amount of data is blowing up the window and
>>> showing all of the strange characters.
>>>
>>> I'm not sure of the division of labor here. Is that something that a KiCad
>>> developer should address, or is it a library issue? Hopefully there is a
>>> flag that can be passed to the library to suppress the overprinted text.
>>>
>>> Steve
>>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to : [email protected]
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help : https://help.launchpad.net/ListHelp
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : [email protected]
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
>From d8d2b70eab51656a8805461f3a8c8fd207519e86 Mon Sep 17 00:00:00 2001
From: "Steven A. Falco" <[email protected]>
Date: Mon, 14 Jan 2019 10:39:17 -0500
Subject: [PATCH] Filter out ngspice status lines containing backspaces.
The ngspice library can output "percent complete" status lines, and the
amount of status produced can exceed 1 megabyte. Those lines contain
embedded backspaces, and don't print correctly. Therefore, we filter
them out.
---
eeschema/sim/sim_plot_frame.cpp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/eeschema/sim/sim_plot_frame.cpp b/eeschema/sim/sim_plot_frame.cpp
index 3812d0c3b..aa1d6b465 100644
--- a/eeschema/sim/sim_plot_frame.cpp
+++ b/eeschema/sim/sim_plot_frame.cpp
@@ -1282,8 +1282,14 @@ void SIM_PLOT_FRAME::onSimUpdate( wxCommandEvent& aEvent )
void SIM_PLOT_FRAME::onSimReport( wxCommandEvent& aEvent )
{
- m_simConsole->AppendText( aEvent.GetString() + "\n" );
- m_simConsole->SetInsertionPointEnd();
+ wxString t = aEvent.GetString();
+
+ // Toss any text with a string of embedded backspaces, as these are
+ // progress status lines that don't print properly.
+ if( t.find("\b\b\b") == wxString::npos ) {
+ m_simConsole->AppendText( t + "\n" );
+ m_simConsole->SetInsertionPointEnd();
+ }
}
--
2.20.1
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help : https://help.launchpad.net/ListHelp