<div dir="ltr">Hi Eric,<div><br></div><div>It works for me, Thank you very much for your help!</div><div><br></div><div>Yours sincerely,</div><div><br></div><div>Shuangbo</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Eric Pettersen <<a href="mailto:pett@cgl.ucsf.edu">pett@cgl.ucsf.edu</a>> 于2020年1月14日周二 上午3:30写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">Hi Shuangbo,<div><span style="white-space:pre-wrap">    </span>Chimera redirects normal standout output and standard error to the Reply Log, so that normal print statements will go there.  Therefore, the prompt of the pdb.set_trace() convenience function is probably showing up in the Log and not your shell.  You need to use the actual Pdb class so that you can get the prompt to go to the original standard output rather than the redirected one.  So namely:</div><div><br></div><div>from pdb import Pdb</div><div>import sys</div><div>debugger = Pdb(stdin=sys.__stdin__, stdout=sys.__stdout__)</div><div>debugger.set_trace()</div><div><br></div><div>—Eric<br><div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="white-space:pre-wrap"><br>      </span>Eric Pettersen</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="white-space:pre-wrap"> </span>UCSF Computer Graphics Lab</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><br></div></div><div><blockquote type="cite"><div>On Jan 12, 2020, at 9:31 PM, 张双博 <<a href="mailto:2088zsp@gmail.com" target="_blank">2088zsp@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><br><div>Dear Sir/Madam,</div><div><br></div><div>I am trying to debug one of the existing plugins to help my understanding of how to write my extension. Usually, I would place "import pdb; pdb.set_trace()" in some lines of the program where I am interested and run it. And when the program encounters this line, it will stop, so I can go through line by line to follow the logic of this python program, which is really helpful. However, when I did this to one plugin of chimera, the plugin and chimera seems frozen, I mean, both didn't respond and there is no "(Pdb)" prompt in opening shell as normally did. I tried this in different places in different scripts, none worked. So I would like to ask how to enable this feature in Chimera or are there some other ways for debugging in Chimera?</div><div><br></div><div>Sincerely,</div><div><br></div><div>Shuangbo</div></div>
_______________________________________________<br>Chimera-dev mailing list<br><a href="mailto:Chimera-dev@cgl.ucsf.edu" target="_blank">Chimera-dev@cgl.ucsf.edu</a><br><a href="http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev" target="_blank">http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev</a><br></div></blockquote></div><br></div></div></blockquote></div>