Re: Accessing right side vector
al davis <[email protected]>
| Newsgroups | gmane.comp.gnu.gnucap.devel |
|---|---|
| Message-ID | <[email protected]> |
On Thursday 25 July 2013, Rishabh Yadav wrote: > I am implementing mrdump command which dumps the right hand > side matrix values.The problem is when I try to access the > right side vector,i.e.,_sim->_i[i] it says Segmentation > fault(core dumped).probably that means _sim->_i does not > exists when i am trying to reference it.I tested this after > doing a transient analysis. That array is deleted before you can print it. _sim->unalloc_vectors(); Although the original goal here was spice compatibility (bug- for-bug) .. sometimes it just doesn't work. Some coding advice ... (the way gnucap is coded, and the way it is expected to be done for inclusion in the main package) .. Use "assert" to verify pointers before using them. In this case: assert(_sim); assert(_sim->_i); If you compile with "-DNDEBUG", these become nothing when compiled, otherwise instead of a random segfault, it prints a message "assert failed". A "release" build defines NDEBUG, a development build does not. For core, this feature is implemented in both the static and autotools build systems. Also, when debugging, it is best to compile with optimization off (-O0) (dash Oh Zero) . Now a question .... Is there any real reason, other than for this command, to keep them around? Aside from Spice compatibility, I think the best way to do the dump is as an option to the dc/ac/tran command. For the summer of code project ..... since there are lots of others, skip this one.