<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[个人原创]Linux下的C++调试服务器之常用调试命令小记]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Thu, 10 Nov 2011 05:44:24 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	1.模拟Linux下的82端口：[Linux自带的nc (netcat) ]<br/>Suse： netcat -l -p 82<br/>Centos： nc -l localhost 82<br/><br/>参考：http://linux.vbird.org/linux_server/0140networkcommand.php<br/>2.查看某个特定进程的CPU，内存等信息：<br/>top只能看前几位，但是这样就可能看到任意，top -p 进程号，如：<br/><textarea name="code" class="html" rows="15" cols="100">
ps aux&#124;grep nmbd 
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 998&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp; 1636&nbsp;&nbsp; 480 pts/11&nbsp;&nbsp; S+&nbsp;&nbsp; 13:17&nbsp;&nbsp; 0:00 grep nmbd
root&nbsp;&nbsp;&nbsp;&nbsp; 22957&nbsp;&nbsp;0.0&nbsp;&nbsp;0.2&nbsp;&nbsp; 8832&nbsp;&nbsp;5112 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 11:09&nbsp;&nbsp; 0:00 /usr/local/samba/sbin/nmbd -D
top -p 22957&nbsp;&nbsp;
PID&nbsp;&nbsp;&nbsp;&nbsp; USER&nbsp;&nbsp;&nbsp;&nbsp; PR&nbsp;&nbsp;NI&nbsp;&nbsp;VIRT&nbsp;&nbsp;RES&nbsp;&nbsp;&nbsp;&nbsp;SHR&nbsp;&nbsp;&nbsp;&nbsp;S %CPU %MEM&nbsp;&nbsp;&nbsp;&nbsp;TIME+&nbsp;&nbsp;COMMAND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
22957 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16&nbsp;&nbsp; 0&nbsp;&nbsp; 8832&nbsp;&nbsp;5128&nbsp;&nbsp;4788&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp; 0.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:01.00 nmbd&nbsp;&nbsp; 
</textarea><br/><br/>3.tcpdump之监听某个端口：<br/><textarea name="code" class="html" rows="15" cols="100">
tcpdump -n -ilo port 82
</textarea><br/><br/>4.gdb 之调试某个启动后的进程（注意该进程必须编译时加 -g）：<br/>通过ps 知道进程号为：16418,这样：<br/><textarea name="code" class="html" rows="15" cols="100">
gdb -p 16418
再用：
b main.cpp:106
</textarea><br/>有某个文件的106行停止。<br/><br/>5.尽量在调试C++服务程序时不要用到 -O2，也就是不要用优化，这样更方便GDB调试。<br/><br/>6.善于用ipcs -m查看共享内存：<br/><textarea name="code" class="html" rows="15" cols="100">
ipcs -m
</textarea><br/>Eof。<br/>Write -By:jack<br/><br/><br/>实践情况：<br/>端口收到实践：<br/>netcat -l -p 82<br/>gooddaygooddaygooddaygooddaygooddaygooddaygooddaygooddaygooddaygooddaygooddaygooddaygooddaygoodday<br/>root@116.255.139.240:~#&nbsp;&nbsp;nc -l localhost 82<br/>goodday<br/>端口监听情况：<br/>tcpdump -n -ilo port 82&nbsp;&nbsp;<br/>tcpdump: verbose output suppressed, use -v or -vv for full protocol decode<br/>listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes<br/>14:04:10.344635 IP 127.0.0.1.38541 &gt; 127.0.0.1.82: S 3710369840:3710369840(0) win 32767 &lt;mss 16396,sackOK,timestamp 1126784740 0,nop,wscale 2&gt;<br/>14:04:10.344859 IP 127.0.0.1.82 &gt; 127.0.0.1.38541: S 3702073690:3702073690(0) ack 3710369841 win 32767 &lt;mss 16396,sackOK,timestamp 1126784740 1126784740,nop,wscale 2&gt;
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [个人原创]Linux下的C++调试服务器之常用调试命令小记]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>