<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Some information about the Booby Bird Trap.  It seems to be a bad day for the birds as we are trapping a lot.</div><div class="gmail_default" style="font-size:small"><br></div></div><div style="font-size:small" class="gmail_default"><font style="font-size:16pt" size="4"><b>Find Lock Problems with
Booby Trap</b></font>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">

</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">A Booby Trap is used
in CinGG for setting a trap to catch lock problems that might have
been missed.  It will trap boobies only if compile by adding
“--with-booby” on the configuration command line.   This is the
default if you compile using ./bld.sh from the GIT repository.  It
should not interfere with normal execution.</p><p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">There are 2
potential traps:</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">   1) If you try to
unlock a lock when it is not locked;</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">   2) or if you
execute a drawing operation without holding the window lock.</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">

</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">The trap prints the
following in the controlling terminal window:</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">

</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">  BOOBY!</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">  <backtrace></p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">

</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">An example backtrace
is below along with some hints on how to analyze:</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">- - - - - - - - 
</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/./cin(_Z5boobyv+0x3f)
[0x557069fa9b2f]
/home/cin5/bin/./cin(_ZN13BC_WindowBase9draw_lineEiiiiP9BC_Pixmap+0x3b)0x557069fb9a9b]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/./cin(_ZN10BC_ListBox11draw_borderEi+0x73)[0x557069f7dc73]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/./cin(+0x9707fb)
[0x557069f7e7fb]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/./cin(_ZN10BC_ListBox16center_selectionEv+0x4e)[0x557069f7f2ae]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/plugins/video/sketcher.plugin(_ZN17SketcherCurveList6updateEi+0x1a0)       [0x7f1b8002a4c0]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/plugins/video/sketcher.plugin(_ZN18SketcherCurveColor17handle_done_eventEi+0x76)</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">  [0x7f1b8002a5f6]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/./cin(_ZN15BC_DialogThread3runEv+0xd8)[0x557069f6fb78]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/home/cin5/bin/./cin(_ZN6Thread10entrypointEPv+0x45)[0x557069fc5995]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/usr/lib/libpthread.so.0(+0x7a9d)
[0x7f1b91b4ea9d]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">/usr/lib/libc.so.6(clone+0x43)
[0x7f1b90accb23]</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">- - - - - - - -   
</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">To see which routine
is reporting the booby keyin:   c++filt</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">And then the 2<sup>nd</sup>
line in the backtrace above:     
_ZN13BC_WindowBase9draw_lineEiiiiP9BC_Pixmap</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%">It comes back with
the routine as:                BC_WindowBase::draw_line(int, int,
int, int, BC_Pixmap*)</p>
<p style="margin-bottom:0in;line-height:100%;background:transparent none repeat scroll 0% 0%"><br>

</p>

</div><br></div>