<div dir="ltr">I have committed two fixes to Perl:<div>One fixes the intermittent builds that I was experiencing. It turns out that CMake and Swig were both generating files named &#39;Makefile&#39; in the build directory. Now the Perl files generate Makefile.perlswig instead.</div>
<div><br></div><div>The other fixes the seg fault on exit that was in your test case for me. I did it simply by conditionally compiling in the __str__ method of SWKey for Perl that was the source of the offense. It will now build in Python but not Perl. This fixes the Seg Fault for me in your minimal test case. Hopefully it doesn&#39;t break any expected functionality.</div>
<div><br></div><div>--Greg</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 13, 2013 at 2:04 AM, Mark Trompell <span dir="ltr">&lt;<a href="mailto:mark@foresightlinux.org" target="_blank">mark@foresightlinux.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Adding some more details:<br>
main::(Perlbindingstest.pl:4):  my $mgr = new Sword::SWMgr();<br>
  DB&lt;1&gt; l<br>
4==&gt;    my $mgr = new Sword::SWMgr();<br>
5:      my $neu = $mgr-&gt;getModule(&quot;GerNeUe&quot;);<br>
6:      my $key = new Sword::SWKey(&quot;Genesis 1:1&quot;);<br>
7:      $neu-&gt;setKey($key);<br>
8:      print $neu-&gt;renderText(),&quot;\n&quot;;<br>
  DB&lt;1&gt; n<br>
main::(Perlbindingstest.pl:5):  my $neu = $mgr-&gt;getModule(&quot;GerNeUe&quot;);<br>
  DB&lt;1&gt; n<br>
main::(Perlbindingstest.pl:6):  my $key = new Sword::SWKey(&quot;Genesis 1:1&quot;);<br>
  DB&lt;1&gt; n<br>
main::(Perlbindingstest.pl:7):  $neu-&gt;setKey($key);<br>
  DB&lt;1&gt; n<br>
main::(Perlbindingstest.pl:8):  print $neu-&gt;renderText(),&quot;\n&quot;;<br>
  DB&lt;1&gt; s<br>
Sword::SWBuf::CODE(0x93a6c0)(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:59):<br>
59:         &#39;&quot;&quot;&#39; =&gt; sub { $_[0]-&gt;__str__()},<br>
  DB&lt;1&gt; s<br>
Sword::SWBuf::CODE(0x93a6c0)(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:59):<br>
59:         &#39;&quot;&quot;&#39; =&gt; sub { $_[0]-&gt;__str__()},<br>
  DB&lt;1&gt; s<br>
<div class="im">Im Anfang schuf Gott Himmel und Erde.<br>
</div>Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:968):<br>
968:        return unless $_[0]-&gt;isa(&#39;HASH&#39;);<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:969):<br>
969:        my $self = tied(%{$_[0]});<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:969):<br>
969:        my $self = tied(%{$_[0]});<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:970):<br>
970:        return unless defined $self;<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:971):<br>
971:        delete $ITERATORS{$self};<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::CODE(0xb3fb90)(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:949):<br>
949:        &#39;&quot;&quot;&#39; =&gt; sub { $_[0]-&gt;__str__()},<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:972):<br>
972:        if (exists $OWNER{$self}) {<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::CODE(0xb3fb90)(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:949):<br>
949:        &#39;&quot;&quot;&#39; =&gt; sub { $_[0]-&gt;__str__()},<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:973):<br>
973:            Swordc::delete_SWKey($self);<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::CODE(0xb3fb90)(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:949):<br>
949:        &#39;&quot;&quot;&#39; =&gt; sub { $_[0]-&gt;__str__()},<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::CODE(0xb3fb90)(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:949):<br>
949:        &#39;&quot;&quot;&#39; =&gt; sub { $_[0]-&gt;__str__()},<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::DESTROY(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:974):<br>
974:            delete $OWNER{$self};<br>
  DB&lt;1&gt; s<br>
Sword::SWKey::CODE(0xb3fb90)(/usr/lib64/perl5/site_perl/5.8.8/Sword.pm:949):<br>
949:        &#39;&quot;&quot;&#39; =&gt; sub { $_[0]-&gt;__str__()},<br>
  DB&lt;1&gt; s<br>
<div class="im"><br>
Program received signal SIGSEGV, Segmentation fault.<br>
</div>0x00007ffff626ae73 in sword_SWKey___str__ (my_perl=&lt;value optimized<br>
<div class="im HOEnZb">out&gt;, cv=&lt;value optimized out&gt;)<br>
    at Sword.cxx:2360<br>
2360                            return const_cast&lt;char *&gt;(self-&gt;getText());<br>
<br>
<br>
</div><div class="HOEnZb"><div class="h5">On Tue, Aug 13, 2013 at 7:36 AM, Mark Trompell &lt;<a href="mailto:mark@foresightlinux.org">mark@foresightlinux.org</a>&gt; wrote:<br>
&gt; This is all I can get out of debugging...<br>
&gt; Program received signal SIGSEGV, Segmentation fault.<br>
&gt; 0x00007ffff646ee73 in sword_SWKey___str__ (my_perl=&lt;value optimized<br>
&gt; out&gt;, cv=&lt;value optimized out&gt;)<br>
&gt;     at Sword.cxx:2360<br>
&gt; 2360                            return const_cast&lt;char *&gt;(self-&gt;getText());<br>
&gt;<br>
&gt; Probably not helpful at all...<br>
&gt; btw it&#39;s r2955.<br>
&gt;<br>
&gt; On Mon, Aug 12, 2013 at 8:53 AM, Mark Trompell &lt;<a href="mailto:mark@foresightlinux.org">mark@foresightlinux.org</a>&gt; wrote:<br>
&gt;&gt; With my little Perlprogramm I get a segmentation fault. I don&#39;t get<br>
&gt;&gt; them with a similiar python programm, how would I debug these?<br>
&gt;&gt;<br>
&gt;&gt; $ ./Perlbindingstest.pl<br>
&gt;&gt; Im Anfang schuf Gott Himmel und Erde.<br>
&gt;&gt; Segmentation fault<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Perlbindingstest.pl:<br>
&gt;&gt; #!/usr/bin/perl<br>
&gt;&gt; use Sword;<br>
&gt;&gt;<br>
&gt;&gt; my $mgr = new Sword::SWMgr();<br>
&gt;&gt; my $neu = $mgr-&gt;getModule(&quot;GerNeUe&quot;);<br>
&gt;&gt; my $key = new Sword::SWKey(&quot;Genesis 1:1&quot;);<br>
&gt;&gt; $neu-&gt;setKey($key);<br>
&gt;&gt; print $neu-&gt;renderText(),&quot;\n&quot;;<br>
&gt;&gt;<br>
&gt;&gt; Pythonbindingstest.py:<br>
&gt;&gt; #!/usr/bin/python<br>
&gt;&gt; import Sword<br>
&gt;&gt;<br>
&gt;&gt; mgr = Sword.SWMgr()<br>
&gt;&gt; neu = mgr.getModule(&quot;GerNeUe&quot;)<br>
&gt;&gt; key = Sword.SWKey(&quot;Genesis 1:1&quot;)<br>
&gt;&gt; neu.setKey(key)<br>
&gt;&gt; print (neu.renderText())<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Mark Trompell<br>
&gt;&gt;<br>
&gt;&gt; Foresight Linux Xfce Edition<br>
&gt;&gt; Cause your desktop should be freaking cool<br>
&gt;&gt; (and Xfce)<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Mark Trompell<br>
&gt;<br>
&gt; Foresight Linux Xfce Edition<br>
&gt; Cause your desktop should be freaking cool<br>
&gt; (and Xfce)<br>
<br>
<br>
<br>
--<br>
Mark Trompell<br>
<br>
Foresight Linux Xfce Edition<br>
Cause your desktop should be freaking cool<br>
(and Xfce)<br>
<br>
_______________________________________________<br>
sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
Instructions to unsubscribe/change your settings at above page<br>
</div></div></blockquote></div><br></div>