﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-实验室宅男的一亩三分地-随笔分类-工具使用</title><link>http://www.cppblog.com/whspecial/category/15681.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 21 Apr 2013 01:15:00 GMT</lastBuildDate><pubDate>Sun, 21 Apr 2013 01:15:00 GMT</pubDate><ttl>60</ttl><item><title>如何在eclipse console中支持中文输出</title><link>http://www.cppblog.com/whspecial/archive/2013/04/21/199599.html</link><dc:creator>whspecial</dc:creator><author>whspecial</author><pubDate>Sun, 21 Apr 2013 00:43:00 GMT</pubDate><guid>http://www.cppblog.com/whspecial/archive/2013/04/21/199599.html</guid><wfw:comment>http://www.cppblog.com/whspecial/comments/199599.html</wfw:comment><comments>http://www.cppblog.com/whspecial/archive/2013/04/21/199599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/whspecial/comments/commentRss/199599.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/whspecial/services/trackbacks/199599.html</trackback:ping><description><![CDATA[<p style="margin: 0px 0px 20px; color: #3c3c3c; font-family: Arial, sans-serif; background-color: #ffffff;">在这个哥们的网站上看到的，好像已经看了好几次这哥们的资料了，感谢！<br /><a href="http://www.mkyong.com/java/how-to-display-chinese-character-in-eclipse-console/comment-page-1/#comment-132022">http://www.mkyong.com/java/how-to-display-chinese-character-in-eclipse-console/comment-page-1/#comment-132022</a><br /><br />By default, Eclipse will output Chinese or non-english characters as question mark (?) or some weird characters. This is because the default encoding is inherited from the project &#8211; run configuration. Often times, the default encoding is&nbsp;<strong>Cp1252</strong>, which is unable to render the Chinese character correctly.</p><p style="margin: 0px 0px 20px; color: #3c3c3c; font-family: Arial, sans-serif; background-color: #ffffff;">To enable Eclipse to display Chinese character correctly, see following steps :</p><p style="margin: 0px 0px 20px; color: #3c3c3c; font-family: Arial, sans-serif; background-color: #ffffff;">1. In Eclipse, right click on your application class, and choose&nbsp;<strong>Run As</strong>&nbsp;&#8211;&gt;&nbsp;<strong>Run Configurations</strong></p><p style="margin: 0px 0px 20px; color: #3c3c3c; font-family: Arial, sans-serif; background-color: #ffffff;">2. In Common tab, Console Encoding group, click on the &#8220;<strong>Other</strong>&#8221; and select the&nbsp;<strong>UTF-8</strong></p><div style="background-color: #f9f9f9; border: 1px solid #dddddd; margin: 20px 0px; padding: 20px; text-align: center; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; color: #3c3c3c; font-family: Arial, sans-serif;"><img src="http://www.mkyong.com/wp-content/uploads/2010/03/eclipse-output-chinese.gif" alt="" title="eclipse-output-chinese" style="max-width: 100%; height: auto; vertical-align: middle; border: 0px;" /></div><p style="margin: 0px 0px 20px; color: #3c3c3c; font-family: Arial, sans-serif; background-color: #ffffff;">3. Done, Eclipse is able to display the Chinese character now.</p><img src ="http://www.cppblog.com/whspecial/aggbug/199599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/whspecial/" target="_blank">whspecial</a> 2013-04-21 08:43 <a href="http://www.cppblog.com/whspecial/archive/2013/04/21/199599.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下常见的debug工具的使用</title><link>http://www.cppblog.com/whspecial/archive/2011/06/09/148353.html</link><dc:creator>whspecial</dc:creator><author>whspecial</author><pubDate>Thu, 09 Jun 2011 08:28:00 GMT</pubDate><guid>http://www.cppblog.com/whspecial/archive/2011/06/09/148353.html</guid><wfw:comment>http://www.cppblog.com/whspecial/comments/148353.html</wfw:comment><comments>http://www.cppblog.com/whspecial/archive/2011/06/09/148353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/whspecial/comments/commentRss/148353.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/whspecial/services/trackbacks/148353.html</trackback:ping><description><![CDATA[<div>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 10pt; ">将自己debug时用到的一些工具分享出来，share给有需要的朋友，大牛看了请一笑了之。</span><br /><br /><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt"><strong>(1)GDB：</strong>最正宗最传统的debug工具，如果做kernel的开发，还有KDB可以使用。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; 小tips:</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;1&gt;可以attach到某一个进程进行调试，注意如果进程里有fork和exec调用来切换到其它进程的话，需要特殊处理</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;2&gt;多线程也可以用gdb来调试，但是我用了之后感觉并不是很好。。。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;3&gt;如果遇到段错误或者程序crush这样的错误，可以使用gdb来调试core dump文件，但是生成core dump需要先进行设置（具体请google~)</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;4&gt;注意内联函数是不能被gdb跟踪的（修改下，按照书上的说法，debug版里应该可以跟踪，因为此时内联不会做展开）</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;5&gt;gdb很强大，请耐心点看manual。。。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;链接：</span><a href="http://www.gnu.org/software/gdb/documentation/"><span style="font-size: 10pt">http://www.gnu.org/software/gdb/documentation/</span></a><br /><br /><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt"><strong>(2)wireshark:</strong>虽然不是调试工具，但如果是做网络程序的开发，非常有用。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;小tips:</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;1&gt;如果程序里的通信协议是使用字符串编码，非常好，但是如果使用二进制编码，wireshark不好用</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;2&gt;对于tcp流，可以在某一个包点击右键："follow tcp stream"，可以看到该tcp流的全部信息</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;3&gt;如果仅仅想看截取包的开头处的信息，可以将包截短,在"capture options"里的"limit each packet to"设置&nbsp;</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;4&gt;windows和linux下都有wireshark。。。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; 链接：</span><a href="http://www.wireshark.org/docs/wsug_html_chunked/"><span style="font-size: 10pt">http://www.wireshark.org/docs/wsug_html_chunked/</span></a><br /><br /><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt"><strong>(3)strace：</strong>截获system call，如果能够看到某个system call的返回值错误，可以很轻松地找到bug原因。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;小tips：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;1&gt;strace也可以像gdb一样去attach一个正在运行的进程，使用-p pid(进程号)即可</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;2&gt;strace的输出比较多，可以-o&nbsp;输出到文件里，分析的时候请耐心。。。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; 链接：</span><a href="http://people.gnome.org/~newren/tutorials/developing-with-gnome/html/ch03s02.html"><span style="font-size: 10pt">http://people.gnome.org/~newren/tutorials/developing-with-gnome/html/ch03s02.html</span></a><br /><br /><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10pt"><strong>(4)inotify-tools：</strong>截获文件系统触发的事件，这个是基于inotify框架来写的一个工具，但是感觉和strace相反，它给出的信息过于少。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;链接：</span><a href="https://github.com/rvoicilas/inotify-tools/wiki/"><span style="font-size: 10pt">https://github.com/rvoicilas/inotify-tools/wiki/</span></a><br /><br /><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt"><strong>(5)printf大法：</strong>最原始的未必就不好，有时也很有用。</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;除了传统的printf，还有一些类似的东西</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror：打印程序errorno </span><a href="http://pubs.opengroup.org/onlinepubs/009695399/functions/perror.html"><span style="font-size: 10pt">http://pubs.opengroup.org/onlinepubs/009695399/functions/perror.html</span></a><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看log信息：如果你是去修改别人的开源程序（经常有实验室这样干吧），那么它的log信息就很重要，记得按照你的需求去设置log level</span><br /><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk：kernel开发中的printf<br /><br /></span></div> <div id="isChromeWebToolbarDiv" style="display:none"></div><img src ="http://www.cppblog.com/whspecial/aggbug/148353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/whspecial/" target="_blank">whspecial</a> 2011-06-09 16:28 <a href="http://www.cppblog.com/whspecial/archive/2011/06/09/148353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>