锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美国产专区,亚洲综合色在线,狠狠色噜噜狠狠狠狠色吗综合http://www.shnenglu.com/lauer3912/category/17376.html娌℃湁鐞嗙敱涓嶅涔?/description>zh-cnSat, 19 Jul 2014 05:07:17 GMTSat, 19 Jul 2014 05:07:17 GMT60Dynamic Library Design Guidelines (Xcode)http://www.shnenglu.com/lauer3912/archive/2012/09/13/190472.htmlRTYRTYThu, 13 Sep 2012 00:58:00 GMThttp://www.shnenglu.com/lauer3912/archive/2012/09/13/190472.htmlhttp://www.shnenglu.com/lauer3912/comments/190472.htmlhttp://www.shnenglu.com/lauer3912/archive/2012/09/13/190472.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/190472.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/190472.html闃呰鍏ㄦ枃

RTY 2012-09-13 08:58 鍙戣〃璇勮
]]>
甯歌闂錛氬浣曞湪鏈夌嚎鏃犵嚎緗戠粶鍏卞瓨鐨勬儏鍐典笅鍚堢悊閰嶇疆璺敱 甯歌闂錛氬浣曞湪鏈夌嚎鏃犵嚎緗戠粶鍏卞瓨鐨勬儏鍐典笅鍚堢悊閰嶇疆璺敱 甯歌闂錛氬浣曞湪鏈夌嚎鏃犵嚎緗戠粶鍏卞瓨鐨勬儏鍐典笅鍚堢悊閰嶇疆璺敱http://www.shnenglu.com/lauer3912/archive/2012/03/06/167240.htmlRTYRTYTue, 06 Mar 2012 05:25:00 GMThttp://www.shnenglu.com/lauer3912/archive/2012/03/06/167240.htmlhttp://www.shnenglu.com/lauer3912/comments/167240.htmlhttp://www.shnenglu.com/lauer3912/archive/2012/03/06/167240.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/167240.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/167240.htmlhttp://support1.lenovo.com.cn/lenovo/wsi/htmls/detail_12608716075461918.html
鏂囩珷緙栧彿:24625
2006-11-28 9:46:54

鍦ㄥ緢澶氭儏鍐典笅浼氬嚭鐜版湁綰夸笌鏃犵嚎鍙岀綉緇滃叡瀛樼殑鎯呭喌錛屾鏃跺氨闇瑕佸悎鐞嗛厤緗礬鐢憋紝鍚﹀垯緗戠粶璁塊棶鏃跺氨浼氬嚭鐜版販涔憋紝鏃犳硶姝e父涓婄綉銆?br />涓句緥鑰岃█錛屽叕鍙稿瓨鍦╰plink鏃犵嚎緗戠粶錛屼負192.168.1.*緗戞錛岀綉鍏充負192.168.1.1錛涙湁綰跨綉緇滀負10.99.31.*緗戞錛岀綉鍏充負10.99.31.2錛涜瀹炵幇璁塊棶澶栫綉鏃朵嬌鐢ㄦ棤綰匡紝鍐呯綉浣跨敤鏈夌嚎錛屽垯閰嶇疆鏂規硶涓猴細
1錛氳繍琛孋MD
2錛歳oute delete 0.0.0.0 mask 0.0.0.0 10.99.31.2
   鍒犻櫎鎵鏈夌綉緇滆繛鎺ラ兘浠庣綉鍏?0.99.31.2璧拌繖鏉¤礬寰勶紱
3錛歳oute add 10.0.0.0 mask 255.0.0.0 10.99.31.2 metric 1
   澧炲姞鍐呯綉榪炴帴璧板唴緗戠綉鍏寵礬寰勶紱濡傛灉鍦ㄨ鍛戒護鍚庡姞 錛峱鍙傛暟灝嗛噸鏂板惎鍔ㄥ悗鍛戒護鏈夋晥錛屾棤闇姣忔鍐欒繖鏉″懡浠や簡錛屽彧闇瑕佽繍琛?灝卞彲浠ヤ簡銆?br />鍙互灝嗕互涓婂懡浠ゆ暣鍚堜負涓涓猙at鏂囦歡錛屼繚瀛樺埌鎵鏈夌▼搴忛」閲岄潰銆傚湪鍙岀綉緇滈兘榪炴帴鎴愬姛鍚庯紝榪愯璇at鏂囦歡灝卞彲浠ヤ簡銆?br />鍏充簬Metric錛?br />metric鏄礬鐢辯畻娉曠敤浠ョ‘瀹氬埌杈劇洰鐨勫湴鐨勬渶浣寵礬寰勭殑璁¢噺鏍囧噯,甯哥敤鐨刴etric鍊兼湁:璺緞闀垮害,鍙潬鎬?寤惰繜,甯﹀,璐熻澆,閫氫俊浠d環絳?
metric鍊肩殑浣滅敤寰堝ぇ,鎴戜滑甯哥敤瀹冩潵璁$畻璺敱鐨勪紭鍏堢駭,濡備袱鏉″埌杈劇浉鍚岀綉緇滅殑闈欐佽礬鐢?metric灝忕殑浼樺厛綰ч珮;
鍥犳錛屾垜浠彲浠ラ氳繃鍚堢悊璁劇疆metric鍊兼潵杈懼埌涓変釜鍙婁笁涓互涓婂緗戠粶瀛樺湪鏃剁殑璺敱閰嶇疆銆?br />璺敱琛ㄧず鎰忓浘錛?br />
瑙i噴錛?br />榛樿緗戝叧涓烘棤綰跨幆澧僼plink鐨?92.168.1.1錛屾墍鏈夌殑緗戠粶鏁版嵁璇鋒眰閮藉皢閫氳繃榪欎釜緗戝叧鍑哄幓錛屼篃灝辨槸璇存墍鏈夌殑緗戠粶璇鋒眰閮戒粠鏃犵嚎鍑哄幓銆?br />persistent routes鍒楄〃浠h〃鎵鏈?0緗戞鐨勯兘浠庢湁綰跨殑緗戝叧10.99.31.2鍑哄幓錛屼篃灝辨槸璇存墍鏈夊睘浜?0緗戞鐨勮姹傞兘浠庢湁綰垮嚭鍘匯傞氳繃榪欎釜璺敱鏉ユ帶鍒跺唴緗戣繛鎺ワ紝涔熷氨鏄棤綰胯礬鐢遍厤緗腑鎵鏈夌綉緇滆姹傝蛋鏃犵嚎鐜鐨勪緥澶栵紒
鍙﹀錛屽鏋滅綉緇滅幆澧冧腑閰嶇疆鏈夎嚜鍔ㄩ厤緗剼鏈紝閭d箞錛岄厤緗剼鏈殑浼樺厛綰ф渶楂樸傜綉緇滅殑鏁版嵁璇鋒眰灝嗘寜鐓ч厤緗剼鏈殑閰嶇疆瀹炵幇銆傚湪姝や緥涓紝濡傛灉鏈夎嚜鍔ㄩ厤緗剼鏈琾roxy.pac錛岄偅涔堜紭鍏堢駭鍒負proxy.pac>192.168.1.1>10.99.31.2錛?br />   


RTY 2012-03-06 13:25 鍙戣〃璇勮
]]>
Linux 緇堢涓父鐢ㄧ殑蹇嵎閿?/title><link>http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html</link><dc:creator>RTY</dc:creator><author>RTY</author><pubDate>Thu, 01 Mar 2012 07:02:00 GMT</pubDate><guid>http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html</guid><wfw:comment>http://www.shnenglu.com/lauer3912/comments/166872.html</wfw:comment><comments>http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lauer3912/comments/commentRss/166872.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lauer3912/services/trackbacks/166872.html</trackback:ping><description><![CDATA[     鎽樿: 1. 縐誨姩鍏夋爣蹇嵎閿甤trl+f 鍚戝墠縐誨姩涓涓瓧絎trl+b 鍚戝悗縐誨姩涓涓瓧絎lt+f 鍚戝墠縐誨姩涓涓崟璇峚lt+b 鍚戝悗縐誨姩涓涓崟璇峜trl+a 縐誨姩鍒板綋鍓嶈棣朿trl+e 縐誨姩鍒板綋鍓嶈灝綾trl+l 娓呭睆錛屽茍鍦ㄥ睆騫曟渶涓婇潰寮濮嬩竴涓柊琛?2. 緙栬緫鍛戒護琛屽揩鎹烽敭ctrl+d 鍒犻櫎褰撳墠鐨勫瓧絎trl+t 浜ゆ崲褰撳墠瀛楃鍜屽墠涓涓瓧絎︾殑浣嶇疆alt+t 浜ゆ崲褰撳墠鍗曡瘝鍜屽墠涓涓崟璇嶇殑浣嶇疆alt+u 鎶婂綋鍓嶅崟璇嶅彉...  <a href='http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/lauer3912/aggbug/166872.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lauer3912/" target="_blank">RTY</a> 2012-03-01 15:02 <a href="http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>codesign CSSMERR_TP_NOT_TRUSTEDhttp://www.shnenglu.com/lauer3912/archive/2012/03/01/166868.htmlRTYRTYThu, 01 Mar 2012 06:48:00 GMThttp://www.shnenglu.com/lauer3912/archive/2012/03/01/166868.htmlhttp://www.shnenglu.com/lauer3912/comments/166868.htmlhttp://www.shnenglu.com/lauer3912/archive/2012/03/01/166868.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/166868.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/166868.htmlcodesign -s "Developer ID Application: Mide Hu" "/Users/QtDev/11/build_trial/list.app"
Xcode iOS鐪熸満璋冭瘯鍑虹幇
Command /usr/bin/codesign failed with exit code 1
鏌ョ湅璇︾粏淇℃伅鎻愮ず錛欳SSMERR_TP_NOT_TRUSTED

鍑虹幇榪欎竴闂鐨勫師鍥犲彲鑳芥槸錛?br />錛?錛夎瘉涔?#8220;Developer ID Application: Mide Hu" 鏄棤鏁堢殑錛?br />  (2) 緙哄皯”Apple Woldwide Developer Relations Certification Authority“



================================================================
浠ヤ笅鏄娉細
鏌ヤ簡鐐硅祫鏂欙紝鍙戠幇鍘熸潵涔嬪墠鍦╧eychain(閽ュ寵紿滆闂?涓鍒犱簡涓涓瘉涔︼細Apple Woldwide Developer Relations Certification Authority錛屽畠鏄痠Phone Developer璇佷功鐨勭鍙戣咃紝濡傛灉瀹冭鍒犻櫎灝變細瀵艱嚧iPhone Developer璇佷功琚瘑鍒負鏈煡棰佸彂鏈烘瀯絳懼悕錛岀劧鍚巟code涓湡鏈鴻皟璇曞氨浼氬嚭鐜頒笂闈㈢殑閿欒銆傝В鍐蟲柟娉曞綋鐒舵槸閲嶆柊鎶夾ppleWWDRCA鏀懼洖鍘?/div>
浠嶢pple瀹樼綉涓嬭澆涓涓?nbsp;
http://www.apple.com/certificateauthority/
鎵懼埌 Woldwide Developer Relations 閫夋嫨 Download certificate
涓嬭澆鍚庢嫋鍏eychain(閽ュ寵紿滆闂?錛嶇櫥褰曠洰褰曘?/div>

RTY 2012-03-01 14:48 鍙戣〃璇勮
]]>鐢典俊閫熷害嫻嬭瘯http://www.shnenglu.com/lauer3912/archive/2012/02/15/165677.htmlRTYRTYWed, 15 Feb 2012 07:45:00 GMThttp://www.shnenglu.com/lauer3912/archive/2012/02/15/165677.htmlhttp://www.shnenglu.com/lauer3912/comments/165677.htmlhttp://www.shnenglu.com/lauer3912/archive/2012/02/15/165677.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/165677.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/165677.htmlhttp://202.102.26.5/st/


RTY 2011-11-09 06:52 鍙戣〃璇勮
]]>Google Breakpad 瀹屽叏瑙f瀽錛堜簩錛?鈥斺?Windows鍓嶅彴瀹炵幇綃?/title><link>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159785.html</link><dc:creator>RTY</dc:creator><author>RTY</author><pubDate>Mon, 07 Nov 2011 13:36:00 GMT</pubDate><guid>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159785.html</guid><wfw:comment>http://www.shnenglu.com/lauer3912/comments/159785.html</wfw:comment><comments>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lauer3912/comments/commentRss/159785.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lauer3912/services/trackbacks/159785.html</trackback:ping><description><![CDATA[<div><h2>Google Breakpad 瀹屽叏瑙f瀽錛堜簩錛?—— Windows鍓嶅彴瀹炵幇綃?/h2> 2011騫?2鏈?鏃?— Asp J <div><h3>Table of contents for Google Breakpad 瀹屽叏瑙f瀽</h3><ol><li><a title="Google Breakpad 瀹屽叏瑙f瀽錛堜竴錛?—— Windows鍏ラ棬綃?>Google Breakpad 瀹屽叏瑙f瀽錛堜竴錛?—— Windows鍏ラ棬綃?/a></li><li>Google Breakpad 瀹屽叏瑙f瀽錛堜簩錛?—— Windows鍓嶅彴瀹炵幇綃?/li></ol></div> <p>鍘熷垱鏂囩珷錛岃漿杞借鏍囨槑鍑哄錛歋oul Apogee (<a target="_blank">http://bigasp.com</a>)錛岃阿璋€?/p> <p>濂斤紝鐪嬪畬浜?a target="_blank">濡備綍浣跨敤breakpad</a>錛屾垜浠幇鍦ㄧ湅鐪媌reakpad鍦╓indows涓嬪埌搴曟槸濡備綍瀹炵幇鐨勫憿錛?/p> <h3><strong>浠g爜緇撴瀯</strong></h3> <p>鍦ㄦ垜浠潵鐪媌reakpad鏄浣曞疄鐜板叾寮哄ぇ鐨勫姛鑳戒箣鍓嶏紝鎴戜滑鍏堟潵鐪嬩竴涓嬩粬鐨勪唬鐮佺粨鏋勫惂銆?/p> <p>Google breakpad鐨勬簮浠g爜閮藉湪src鐨勭洰褰曚笅錛屼粬鍒嗕負濡備笅鍑犱釜鏂囦歡澶癸細<br /> client錛氳繖涓嬮潰鍖呭惈浜嗗墠鍙板簲鐢ㄧ▼搴忎腑鎹曟崏dump鐨勯儴鍒嗕唬鐮侊紝閲岄潰鎸夌収騫沖彴鍒嗘垚鍚勪釜瀛愭枃浠跺す<br /> common錛氬墠鍙板悗鍙伴兘浼氱敤鍒扮殑閮ㄥ垎鍩虹浠g爜錛屽瓧絎︿覆杞崲錛屽唴瀛樿鍐欙紝md5紲為┈鐨?br /> google_breakpad錛歜reakpad涓叕鍏辯殑澶存枃浠?br /> processor錛氱敤浜庡湪鍚庡彴澶勭悊宕╂簝鐨勬牳蹇冧唬鐮?br /> testing錛氭祴璇曞伐紼?br /> third_party錛氱涓夋柟搴?br /> tools錛氫竴浜涘皬宸ュ叿錛岀敤浜庡鐞哾ump鏂囦歡鍜岀鍙瘋〃</p> <p>鎴戜滑鍏堟潵鐪媁indows涓嬪墠鍙板疄鐜扮殑閮ㄥ垎錛屼篃灝辨槸client鏂囦歡澶逛笅鐨勪唬鐮併?/p> <h3><strong>breakpad鐨勫穿婧冩崟鑾鋒満鍒?/strong></h3> <p>鍦╓indows涓嬫崟鑾峰穿婧冿紝澶у寰堝鏄撲細鎯沖埌閭d釜鎹曡幏緇撴瀯鍖栧紓甯哥殑Api錛?a target="blank" >SetUnhandledExceptionFilter</a>銆?/p> <p>breakpad涓篃浣跨敤浜嗚繖涓狝pi鏉ュ疄鐜扮殑宕╂簝鎹曡幏錛屽彟澶栵紝breakpad榪樻崟鑾蜂簡鍙﹀涓ょC++榪愯搴撴彁渚涚殑宕╂簝錛屼竴縐嶆槸浣跨敤<a target="blank" >_set_purecall_handler</a>鎹曡幏綰櫄鍑芥暟璋冪敤浜х敓鐨勫穿婧冿紝榪樻湁涓縐嶆槸浣跨敤<a target="blank" >_set_invalid_parameter_handler</a>鎹曡幏閿欒鐨勫弬鏁拌皟鐢ㄤ駭鐢熺殑宕╂簝銆?/p> <div><div class="hvzpftn" id="highlighter_32943" cpp"=""><div><a command_help="" help"="">?</a></div><table cellpadding="0" cellspacing="0" border="0"><tbody><tr><td><div number1="" index0="" alt2"="">1</div><div number2="" index1="" alt1"="">2</div><div number3="" index2="" alt2"="">3</div><div number4="" index3="" alt1"="">4</div><div number5="" index4="" alt2"="">5</div><div number6="" index5="" alt1"="">6</div><div number7="" index6="" alt2"="">7</div><div number8="" index7="" alt1"="">8</div><div number9="" index8="" alt2"="">9</div><div number10="" index9="" alt1"="">10</div></td><td><div><div number1="" index0="" alt2"=""><code spaces"="">    </code><code keyword="" bold"="">if</code> <code plain"="">(handler_types & HANDLER_EXCEPTION)</code></div><div number2="" index1="" alt1"=""><code spaces"="">      </code><code plain"="">previous_filter_ = SetUnhandledExceptionFilter(HandleException);</code></div><div number3="" index2="" alt2"=""> </div><div number4="" index3="" alt1"=""><code preprocessor"="">#if _MSC_VER >= 1400  // MSVC 2005/8</code></div><div number5="" index4="" alt2"=""><code spaces"="">    </code><code keyword="" bold"="">if</code> <code plain"="">(handler_types & HANDLER_INVALID_PARAMETER)</code></div><div number6="" index5="" alt1"=""><code spaces"="">      </code><code plain"="">previous_iph_ = _set_invalid_parameter_handler(HandleInvalidParameter);</code></div><div number7="" index6="" alt2"=""><code preprocessor"="">#endif  // _MSC_VER >= 1400</code></div><div number8="" index7="" alt1"=""> </div><div number9="" index8="" alt2"=""><code spaces"="">    </code><code keyword="" bold"="">if</code> <code plain"="">(handler_types & HANDLER_PURECALL)</code></div><div number10="" index9="" alt1"=""><code spaces"="">      </code><code plain"="">previous_pch_ = _set_purecall_handler(HandlePureVirtualCall);</code></div></div></td></tr></tbody></table></div></div> <p>鍙﹀鐢變簬C++榪愯搴撴彁渚涚殑宕╂簝鍥炶皟涓紝騫朵笉浼氭彁渚涘綋鍓嶇殑綰跨▼鐜板満鍜屽穿婧冧俊鎭紝鎵浠reakpad浼氳嚜宸辯敓鎴愬ソ榪欎簺淇℃伅錛岀劧鍚庤姹傜敓鎴恉ump銆?br /> 榪欓噷鍊煎緱涓璇寸殑鏄紝鍦ㄩ潪寮傚父宕╂簝澶勭悊涓紝breakpad鑾峰彇綰跨▼鐜板満浣跨敤鐨勫嚱鏁版槸RtlCaptureContext鑰屼笉鏄疓etThreadContext銆?br /> RtlCaptureContext鍙兘鎹曡幏褰撳墠綰跨▼鐨勭幇鍦猴紝鑰孏etThreadContext鍙互鎹曡幏浠繪剰綰跨▼鐨勭幇鍦猴紝鍙鏈夎繖涓嚎紼嬬殑鍙ユ焺鍗沖彲銆?br /> 浣嗘槸GetThreadContext鏈変袱涓笉濂界殑鍦版柟錛氫笉鑳借幏鍙栧綋鍓嶇嚎紼嬬殑鐜板満錛涜幏鍙栫幇鍦哄墠蹇呴』鍏堢敤SuspendThread鏆傚仠鐩爣綰跨▼銆?br /> 鑰孯tlCaptureContext铏界劧鍙兘鑾峰彇褰撳墠綰跨▼鐨勭幇鍦猴紝浣嗘槸璋冪敤浠栨椂鍙互涓嶇敤鏆傚仠綰跨▼鐨勮繍琛屻?br /> 瀵逛簬breakpad鏉ヨ錛屽穿婧冨彂鐢熷悗瓚婃棭鑾峰彇鐜板満灝辮秺濂斤紝鎵浠reakpad浣跨敤RtlCaptureContext鍑芥暟浣滀負浠栫殑綰跨▼鑾峰彇鍑芥暟銆?/p> <h3><strong>breakpad涓殑C/S緇撴瀯</strong></h3> <p>鐢變簬breakpad鏄湪榪涚▼澶栨姄鍙杁ump錛屾墍浠reakpad闇瑕佸疄鐜頒竴涓狢/S緇撴瀯鏉ュ鐞嗗穿婧冭繘紼嬫姄鍙杁ump鐨勮姹傘?/p> <p><strong>1. breakpad璺ㄨ繘紼嬮氫俊鐨勫疄鐜?br /> </strong>breakpad涓嬌鐢ㄤ簡鍛藉悕綆¢亾鏉ュ疄鐜癐PC銆?/p> <p>鍦ㄥ鎴風錛屽垵濮嬪寲ExceptionHandler鐨勬椂鍊欙紝濡傛灉鎸囧畾浜哖ipeName錛屼篃灝辮〃紺烘鏃墮渶瑕佷嬌鐢ㄨ繘紼嬪鐨刣ump鎶?鍙栵紝ExceptionHandler錛屼細寤虹珛涓涓?nbsp;CrashGenerationClient鐨勫璞★紝鐢辮繖涓璞¤繛鎺ユ湇鍔$錛屽皢鑷繁娉ㄥ唽鍒版湇鍔$涓?鍘匯?br /> 澶у鍙互鍙傜湅exception_handler.cc涓殑ExceptionHandler::Initialize鍑芥暟銆?/p> <p>鍦ㄦ湇鍔$錛屽垵濮嬪寲CrashGenerationServer鐨勬椂鍊欙紝灝變細寤虹珛涓涓懡鍚嶇閬擄紝騫剁瓑寰呭鎴風鏉ヨ繛鎺ャ備竴鏃︽湁瀹㈡埛绔繛鎺ヤ笂鏉ワ紝鏈嶅姟绔細 涓烘瘡涓涓鎴風鐢熸垚涓涓狢lientInfo鐨勫璞★紝涔嬪悗鐢ㄨ繖涓璞℃潵綆$悊鎵鏈夌殑瀹㈡埛绔紝涓鏃︽湁宕╂簝鍙戠敓錛屾湇鍔$閮戒細浠庤繖涓璞′腑鍙栧嚭dump鎵闇瑕佺殑淇?鎭?br /> 澶у鍙互鍙傜湅crash_generation_server.cc涓殑CrashGenerationServer::HandleReadDoneState鍑芥暟銆?/p> <p><strong>2. breakpad鎹曡幏宕╂簝鐢熸垚dump鐨勬祦紼?br /> </strong>breakpad榪涚▼澶栫敓鎴恉ump鐨勬祦紼嬪ぇ姒傚涓嬶細<br /> <strong>google-breakpad-out-of-process-dump:</strong><br /><a target="_blank"><img src="http://bigasp.com/wp-content/uploads/downloads/thumbnails/2011/02/google-breakpad-out-of-process-dump.jpg" alt="google-breakpad-out-of-process-dump" style="max-width:500px;" /></a><br /> 榪欐嫻佺▼鐨勪唬鐮佸氨鏄痗rash_generation_client.cc鍜宑rash_generation_server.cc銆?/p> <p>鏈変袱涓畝鍗曠殑闂錛岃繖閲岃鏄庝竴涓嬶紝楂樻墜浠氨璇風洿鎺ュ拷鐣ュ惂錛屽挬鍝堝搱錛?br /> <strong>鍦ㄦ湇鍔$濡備綍涓哄鎴風鐢熸垚浜嬩歡鍙ユ焺錛?/strong><br /> 浣跨敤DuplicateHandle錛屽嵆鍙妸浠繪剰涓涓唴鏍稿璞$殑鍙ユ焺澶嶅埗鍒板叾浠栬繘紼嬶紝騫朵笖鍙互鎸囧畾浜х敓鐨勫彞鏌勭殑鏉冮檺銆?/p> <p><strong>濡備綍寮傛鐨勭瓑寰呬竴涓簨浠訛紵<br /> </strong>浣跨敤RegisterWaitForSingleObject錛屽嵆鍙紓姝ョ殑絳夊緟涓涓簨浠訛紝褰撲簨浠跺彂鐢熺殑鏃跺欙紝灝卞彲浠ュ洖璋冨埌涓涓寚瀹氱殑鍥?璋冨嚱鏁頒腑錛屼絾鏄娉ㄦ剰鐨勬槸錛孯egisterWaitForSingleObject浼氬湪涓涓柊鐨勭嚎紼嬩腑鏉ョ瓑寰呰繖涓簨浠訛紝姝ゅ寰堝鏄撲駭鐢熷綰跨▼鐨勮皟鐢紝闇 瑕佹敞鎰忕嚎紼嬮棶棰樸?/p> <p><strong>3. 鏈嶅姟绔叧閿暟鎹粨鏋勶細ClientInfo<br /> </strong>ClientInfo鏄湇鍔$涓渶閲嶈鐨勬暟鎹粨鏋勶紝鏈嶅姟绔氳繃瀹冩潵綆$悊鎵鏈夌殑瀹㈡埛绔傚鎴風娉ㄥ唽鏃訛紝浼氫繚瀛樻垨鐢熸垚閲岄潰鎵鏈夌殑淇℃伅錛屽湪瀹㈡埛绔姹傜敓鎴恉ump鐨勬椂鍊欙紝鏈嶅姟绔氨浼氶氳繃ClientInfo鑾峰彇鎵鏈夊鎴風鐨勪俊鎭侰lientInfo涓繚瀛樹簡濡備笅淇℃伅錛?/p> <ul><li>瀹㈡埛绔繘紼媝id鍜屽彞鏌?/li><li>鐢熸垚Minidump鐨勭被鍨?/li><li>鑷畾涔夌殑瀹㈡埛绔俊鎭?/li><li>瀹㈡埛绔穿婧冪殑綰跨▼ID</li><li>瀹㈡埛绔穿婧冪殑淇℃伅</li><li>瀹㈡埛绔姹傚穿婧冩墍浣跨敤鐨勪簨浠跺彞鏌?/li></ul> <p>榪欓噷鏈変竴涓棶棰橈細鍦ㄥ鎴風鍙戠敓宕╂簝鏃訛紝鏈嶅姟鍣ㄥ浣曢氳繃ClientInfo鑾峰彇鍒板鎴風鐨勫穿婧冧俊鎭憿錛?/p> <p>瀹㈡埛绔腑鏈夊嚑涓敤浜庝繚瀛樺穿婧冧俊鎭殑鍙橀噺錛屽湪娉ㄥ唽鏃訛紝瀹㈡埛绔細灝嗚繖鍑犱釜鍙橀噺鐨勫湴鍧鍙戦佽嚦鏈嶅姟绔紝鏈嶅姟绔皢鍏朵繚瀛樺湪ClientInfo涓紝鐒跺悗褰撳穿婧?鍙戠敓鐨勬椂鍊欙紝鏈嶅姟绔氨鍙互閫氳繃ReadProcessMemory璇誨彇瀹㈡埛绔腑鐨勪俊鎭紝浠庤岀敓鎴恉ump銆傝繖鏍峰仛灝遍伩鍏嶄簡姣忔鍙戠敓宕╂簝錛岄兘瑕侀氳繃Pipe 灝嗗穿婧冧俊鎭紶閫掑埌鏈嶅姟绔腑鍘諱簡銆?/p> <p>榪欎簺鍙橀噺鍒嗗埆鏄細宕╂簝鐨勭嚎紼婭D錛孍XCEPTION_POINTERS鍜孧DRawAssertionInfo銆?br /> EXCEPTION_POINTERS鍜孧DRawAssertionInfo鐨勫尯鍒湪浜庯紝寮傚父宕╂簝鐨勪俊鎭細琚啓鍏XCEPTION_POINTERS錛岄潪寮傚父宕╂簝錛堥潪娉曞弬鏁板拰綰櫄鍑芥暟璋冪敤錛夌殑淇℃伅浼氳鍐欏叆MDRawAssertionInfo涓?/p> <h3><strong>dump鏂囦歡鐨勪笂浼?/strong></h3> <p>鍦╞reakpad鐨勫伐紼嬩腑錛屾湁涓涓伐紼嬪彨鍋氾細crash_report_sender錛岄噷闈㈡槸涓涓笂浼犲穿婧冩枃浠剁殑綾伙紝浠栫殑瀹炵幇寰堢畝鍗曪紝浠栦嬌鐢╓indows Internet Api鏉ュ畬鎴恉ump鏂囦歡鐨勪笂浼犮?br /> 鍦ㄤ嬌鐢╟rash_report_sender鏃訛紝鍙互涓哄叾鎸囧畾涓涓猚heckpoint_file銆?/p> <div><div class="hvzpftn" id="highlighter_216810" cpp"=""><div><a command_help="" help"="">?</a></div><table cellpadding="0" cellspacing="0" border="0"><tbody><tr><td><div number1="" index0="" alt2"="">1</div></td><td><div><div number1="" index0="" alt2"=""><code keyword="" bold"="">explicit</code> <code plain"="">CrashReportSender(</code><code keyword="" bold"="">const</code> <code plain"="">wstring &checkpoint_file);</code></div></div></td></tr></tbody></table></div></div> <p>榪欎釜鏂囦歡鍙湁涓涓綔鐢紝灝辨槸鐢ㄦ潵淇濆瓨涓婃涓婁紶宕╂簝鐨勬椂闂村拰浠婂ぉ涓婁紶榪囩殑宕╂簝鐨勬鏁般傞氳繃榪欎釜鏂囦歡錛屾垜浠氨鍙互鏉ヨ緗瘡鏃ヤ笂浼犵殑宕╂簝鐨勬渶澶ф暟閲忋?/p> <div><div class="hvzpftn" id="highlighter_535960" cpp"=""><div><a command_help="" help"="">?</a></div><table cellpadding="0" cellspacing="0" border="0"><tbody><tr><td><div number1="" index0="" alt2"="">1</div><div number2="" index1="" alt1"="">2</div><div number3="" index2="" alt2"="">3</div><div number4="" index3="" alt1"="">4</div><div number5="" index4="" alt2"="">5</div><div number6="" index5="" alt1"="">6</div><div number7="" index6="" alt2"="">7</div><div number8="" index7="" alt1"="">8</div><div number9="" index8="" alt2"="">9</div><div number10="" index9="" alt1"="">10</div><div number11="" index10="" alt2"="">11</div><div number12="" index11="" alt1"="">12</div><div number13="" index12="" alt2"="">13</div><div number14="" index13="" alt1"="">14</div><div number15="" index14="" alt2"="">15</div><div number16="" index15="" alt1"="">16</div><div number17="" index16="" alt2"="">17</div><div number18="" index17="" alt1"="">18</div><div number19="" index18="" alt2"="">19</div><div number20="" index19="" alt1"="">20</div><div number21="" index20="" alt2"="">21</div><div number22="" index21="" alt1"="">22</div><div number23="" index22="" alt2"="">23</div><div number24="" index23="" alt1"="">24</div></td><td><div><div number1="" index0="" alt2"=""><code plain"="">CrashReportSender::CrashReportSender(</code><code keyword="" bold"="">const</code> <code plain"="">wstring &checkpoint_file)</code></div><div number2="" index1="" alt1"=""><code spaces"="">    </code><code plain"="">: checkpoint_file_(checkpoint_file),</code></div><div number3="" index2="" alt2"=""><code spaces"="">      </code><code plain"="">max_reports_per_day_(-1),</code></div><div number4="" index3="" alt1"=""><code spaces"="">      </code><code plain"="">last_sent_date_(-1),</code></div><div number5="" index4="" alt2"=""><code spaces"="">      </code><code plain"="">reports_sent_(0) {</code></div><div number6="" index5="" alt1"=""><code spaces"="">  </code><code color1="" bold"="">FILE</code> <code plain"="">*fd;</code></div><div number7="" index6="" alt2"=""><code spaces"="">  </code><code keyword="" bold"="">if</code> <code plain"="">(OpenCheckpointFile(L</code><code string"="">"r"</code><code plain"="">, &fd) == 0) {</code></div><div number8="" index7="" alt1"=""><code spaces"="">    </code><code plain"="">ReadCheckpoint(fd);</code></div><div number9="" index8="" alt2"=""><code spaces"="">    </code><code functions="" bold"="">fclose</code><code plain"="">(fd);</code></div><div number10="" index9="" alt1"=""><code spaces"="">  </code><code plain"="">}</code></div><div number11="" index10="" alt2"=""><code plain"="">}</code></div><div number12="" index11="" alt1"=""> </div><div number13="" index12="" alt2"=""><code plain"="">ReportResult CrashReportSender::SendCrashReport(</code></div><div number14="" index13="" alt1"=""><code spaces"="">    </code><code keyword="" bold"="">const</code> <code plain"="">wstring &url, </code><code keyword="" bold"="">const</code> <code plain"="">map<wstring, wstring> &parameters,</code></div><div number15="" index14="" alt2"=""><code spaces"="">    </code><code keyword="" bold"="">const</code> <code plain"="">wstring &dump_file_name, wstring *report_code) {</code></div><div number16="" index15="" alt1"=""><code spaces"="">  </code><code color1="" bold"="">int</code> <code plain"="">today = GetCurrentDate();</code></div><div number17="" index16="" alt2"=""><code spaces"="">  </code><code keyword="" bold"="">if</code> <code plain"="">(today == last_sent_date_ &&</code></div><div number18="" index17="" alt1"=""><code spaces"="">      </code><code plain"="">max_reports_per_day_ != -1 &&</code></div><div number19="" index18="" alt2"=""><code spaces"="">      </code><code plain"="">reports_sent_ >= max_reports_per_day_) {</code></div><div number20="" index19="" alt1"=""><code spaces"="">    </code><code keyword="" bold"="">return</code> <code plain"="">RESULT_THROTTLED;</code></div><div number21="" index20="" alt2"=""><code spaces"="">  </code><code plain"="">}</code></div><div number22="" index21="" alt1"=""> </div><div number23="" index22="" alt2"=""><code spaces"="">  </code><code comments"="">// 涓婁紶鏂囦歡閮ㄥ垎浠g爜錛岀渷鐣?/code></div><div number24="" index23="" alt1"=""><code plain"="">}</code></div></div></td></tr></tbody></table></div></div> <p>璋冩暣姣忔棩涓婁紶宕╂簝鐨勬渶澶ф暟閲忕殑鍑芥暟鏄痵et_max_reports_per_day銆?/p> <p>闇瑕佹敞鎰忕殑鏄細鍦ㄤ笂浼燿ump鏂囦歡鐨勬椂鍊欙紝crash_report_sender騫朵笉浼氬dump鏂囦歡榪涜鍒嗘瀽錛岃屾槸鐩存帴涓婁紶鏁翠釜dump鏂囦歡錛?濡傛灉浣犻渶瑕佷笂浼犵殑dump鏂囦歡闈炲父澶х殑璇濓紝鍙互鑰冭檻鎶婂穿婧冨垎鏋愬鐞嗙殑閫昏緫鏀懼叆鍓嶅彴錛岄氳繃鍘婚噸鎴栬呯洿鎺ヤ笂浼犲垎鏋愮粨鏋滐紝鍑忓皯涓婁紶鐨勬枃浠跺ぇ灝忋?/p> <h3><strong>breakpad瀛樺湪鐨勯棶棰?/strong></h3> <h3><span style="font-weight: normal; font-size: 13px;">榪涚▼澶栫敓鎴恉ump鏈夊緢澶氬ソ澶勶紝鍏朵腑鏈澶х殑濂藉灝辨槸涓嶄細琚穿婧冭繘紼嬪獎鍝嶏紝榪欐牱dump鐨勮繃紼嬪氨涓嶅鏄撳嚭閿欙紝浣嗘槸榪欐牱涔熸湁涓瀹氱殑寮婄銆?/span></h3> <p><strong>1. 閮ㄥ垎宕╂簝鏃犳硶鎶撳彇<br /> </strong>鍦ㄤ竴浜涙瀬绔殑宕╂簝錛屽鍫嗘爤婧㈠嚭涔嬬被鐨勫穿婧冿紝榪涚▼澶栨姄鍙杁ump鏈夋椂鍊欎細澶辮觸銆?/p> <p><strong>2. 鏃犳硶鎶撳彇姝婚攣鎴栬呭叾浠栧師鍥犲鑷寸殑榪涚▼鍍墊<br /> </strong>breakpad鐜板湪娌℃湁媯嫻嬭繘紼嬫閿佺殑浠g爜錛屼篃娌℃湁鍦ㄦ湇鍔$鎺у埗瀹㈡埛绔姹俤ump鐨勪唬鐮侊紝鎵浠ョ幇鍦╞reakpad鏃犳硶鎶撳彇姝婚攣絳夎繘紼嬪兊姝葷殑闂銆備笉榪囧洜涓篵reakpad鐨勫畾浣嶆槸澶勭悊宕╂簝錛屽鏋滄湁榪欑闇瑕佺殑绔ラ瀷錛屽彲浠ヨ嚜琛屼慨鏀筨reakpad鐨勪唬鐮侊紝娣誨姞榪欎簺鍔熻兘銆?/p> <p><strong>3. 瀵規湇鍔$鏈変緷璧?br /> </strong>濡傛灉鎸囧畾浜嗗湪浣跨敤榪涚▼澶栨姄鍙杁ump錛宐reakpad瀵規湇鍔$灝辨湁渚濊禆銆備富瑕佷綋鐜板湪鎶撳彇dump鏃訛紝濡傛灉鏈嶅姟绔笉瀛樺湪錛屽鎴風灝嗘棤娉曟甯告姄鍙杁ump錛岀敋鑷蟲湁鏃朵細鍑虹幇闃誨銆?/p> <p>褰撶劧瀵逛簬榪欎簺闂錛岄殢鐫breakpad鐨勫彂灞曡偗瀹氫細瓚婃潵瓚婂畬鍠勩傚鏋滐紝浣犻亣鍒頒簡浜嗚繖浜涢棶棰橈紝鑰屽張緇曡繃涓嶄簡錛岄偅灝辨敼浠g爜錛屽茍涓旀彁浜ょ粰breakpad鍚э紝寮婧愰」鐩氨鏄繖涔堝彂灞曠殑銆?/p> <p>濂斤紝鍒版breakpad鐨刉indows瀹炵幇灝卞凡緇忚瀹屼簡錛屽鏋滄湁紲為┈闂錛岃繕璇峰澶氭寚鏁欍傝阿璋㈠ぇ瀹躲?/p><p style="margin-bottom:0pt; margin-top:0pt; "><a ><span style=" color:#0000ff; text-decoration:underline ;font-family:'瀹嬩綋'; ">鍖椾含寰瘋儨闂ㄤ腑鍖婚櫌</span></a><a ><span style=" color:#0000ff; text-decoration:underline ;font-family:'瀹嬩綋'; ">http://www.0531jsk.com/</span></a><span style=" font-size:10.5000pt; font-family:'瀹嬩綋'; ">寰瘋儨闂ㄤ腑鍖婚櫌</span></p></div><img src ="http://www.shnenglu.com/lauer3912/aggbug/159785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lauer3912/" target="_blank">RTY</a> 2011-11-07 21:36 <a href="http://www.shnenglu.com/lauer3912/archive/2011/11/07/159785.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Google Breakpad 瀹屽叏瑙f瀽錛堜竴錛?鈥斺?Windows鍏ラ棬綃?/title><link>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159784.html</link><dc:creator>RTY</dc:creator><author>RTY</author><pubDate>Mon, 07 Nov 2011 13:34:00 GMT</pubDate><guid>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159784.html</guid><wfw:comment>http://www.shnenglu.com/lauer3912/comments/159784.html</wfw:comment><comments>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lauer3912/comments/commentRss/159784.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lauer3912/services/trackbacks/159784.html</trackback:ping><description><![CDATA[<div><h2>Google Breakpad 瀹屽叏瑙f瀽錛堜竴錛?—— Windows鍏ラ棬綃?/h2> 2011騫?1鏈?3鏃?— Asp J <div><h3>Table of contents for Google Breakpad 瀹屽叏瑙f瀽</h3><ol><li>Google Breakpad 瀹屽叏瑙f瀽錛堜竴錛?—— Windows鍏ラ棬綃?/li><li><a title="Google Breakpad 瀹屽叏瑙f瀽錛堜簩錛?—— Windows鍓嶅彴瀹炵幇綃?>Google Breakpad 瀹屽叏瑙f瀽錛堜簩錛?—— Windows鍓嶅彴瀹炵幇綃?/a></li></ol></div> <p>鍘熷垱鏂囩珷錛岃漿杞借鏍囨槑鍑哄錛歋oul Apogee (<a target="_blank">http://bigasp.com</a>)錛岃阿璋€? </p> <p><a title="Google Breakpad" target="_blank">Google breakpad</a>鏄?涓涓潪甯稿疄鐢ㄧ殑璺ㄥ鉤鍙扮殑宕╂簝杞偍鍜屽垎鏋愭ā鍧楋紝浠栨敮鎸乄indows錛孡inux鍜孧ac鍜孲olaris銆傜敱浜庝粬鏈韓璺ㄥ鉤鍙幫紝鎵浠ュ緢澶х殑鍑忓皯鎴戜滑鍦ㄥ鉤鍙扮Щ 妞嶆椂鐨勫伐浣滐紝姣曠珶宕╂簝杞偍錛屾瘡涓鉤鍙頒笅閮戒笉鍚岋紝浣跨敤璧鋒潵寰堥毦緇熶竴錛岃孏oogle breakpad灝卞府鎴戜滑鍋氬埌浜嗚繖涓鐐癸紝涓嶇鏄摢涓鉤鍙頒笅鐨勫穿婧冿紝閮借兘澶熻繘琛岀粺涓鐨勫垎鏋愩傜幇鍦ㄥ緢澶氬伐紼嬮兘鍦ㄤ嬌鐢ㄤ粬錛氭渶钁楀悕鐨勫嚑涓 Chrome錛孎irefox錛孭icasa鍜孏oogle Earth銆傚彟澶栦粬鐨凩icense鏄疊SD鐨勶紝涔熷氨鏄錛屾垜浠嵆渚挎槸鍦ㄥ晢涓氳蔣浠朵腑浣跨敤錛屼篃鏄悎娉曠殑錛屽搱鍝堬紝榪欎箞濂界殑涓滆タ錛屾垜浠兘鏀捐繃涔堬紵鐜板湪灝辮鎴戜滑鏉?鐪嬬湅榪欎釜紲炲鐨勮蔣浠跺惂銆?/p> <h3><strong>鍘熺悊綆浠?/strong></h3> <p>breakpad鎶撳彇dump鐨勬柟寮忓拰涓鑸垜浠姄鍙杁ump鐨勬柟寮忎笉涓鏍楓傚湪breakpad鐨剋iki涓婃湁涓騫呭浘鍙互寰堝ソ鐨勬鎷粬鐨勫師鐞嗐?/p> <p><img title="breakpad" src="http://google-breakpad.googlecode.com/svn/wiki/breakpad.png" alt="" height="464" width="425" /></p> <p>breakpad鎶婂簲鐢ㄧ▼搴忓垎鎴愪笁涓儴鍒嗭紝浠g爜錛宐reakpad瀹㈡埛绔拰璋冭瘯淇℃伅銆?/p> <p>1. 鍦╞uild system涓紝閫氳繃symbol dumper鐢ㄥ鉤鍙扮浉鍏崇殑璋冭瘯淇℃伅鐢熸垚騫沖彴鏃犲叧鐨剆ymbol鏂囦歡銆傝繖鏍峰仛鐨勫ソ澶勫緢鏄庢樉錛屼竴鏃﹀鉤鍙版棤鍏充簡錛屾墍鏈夊鉤鍙扮殑宕╂簝灝卞彲浠ュ仛緇熶竴鐨勫垎鏋愪簡銆?br /> 2. breakpad閲囧彇榪涚▼澶栬漿鍌ㄥ拰鍒嗘瀽宕╂簝鐨勬柟寮忥紝浠栦嬌鐢–/S緇撴瀯錛屽鎴風鐢ㄦ潵鎹曡幏褰撳墠榪涚▼涓彂鐢熺殑宕╂簝錛屽茍閫氱煡鏈嶅姟绔穿婧冨彂鐢熴傛湇鍔$鐢ㄦ潵鍝嶅簲瀹㈡埛绔紝鎶撳彇dump鏂囦歡銆傝繖鏍峰仛鐨勭洰鐨勬槸涓轟簡鍑忓皯宕╂簝榪涚▼瀵筪ump鐨勫獎鍝嶃?br /> 3. Dump鐢熸垚鍚庤漿鍙戝埌宕╂簝鍒嗘瀽鍣ㄤ腑錛岃繖涓儴鍒嗗彲浠ュ湪鏈湴涔熷彲浠ュ湪鏈嶅姟鍣ㄤ笂錛屼粬瀵笵ump鏂囦歡榪涜瑙f瀽錛岀敓鎴愬彲璇葷殑鍫嗘爤淇℃伅銆?/p> <p>榪欏氨鏄痓reakpad澶勭悊dump澶ф鐨勬祦紼嬨?/p> <p>瀵逛簬鍘熺悊鐨勪粙緇峠oogle鍐欑殑宸茬粡鐩稿綋濂戒簡銆傛洿澶氱殑璇︾粏淇℃伅錛屽彲浠ョ洿鎺ョЩ姝ュ埌<a target="_blank">breakpad鐨剋iki</a>銆?/p> <h3><strong>瀹夎鍜岀紪璇?/strong></h3> <p>breakpad鐨勭紪璇戞瘮杈冩洸鎶橈紝鎵浠ュ湪姝よ褰曚竴涓嬨?/p> <p>緙栬瘧breakpad錛岃紜浣犵殑鏈哄櫒涓婅鏈変互涓嬬殑杞歡錛?br /> 1. <a target="_blank">python 2.4.3</a><a target="_blank"><br /> </a>璇蜂笉瑕佷嬌鐢╬ython3錛屼細鎶ラ敊銆傚彟澶杙ython2涓帹鑽愯繖涓増鏈紝浣跨敤鏂扮殑鐗堟湰鍦ㄧ紪璇戝叾浠杇oogle鐨勫伐紼嬫椂鏈夋椂浼氭姤閿?/p> <p>2. <a target="_blank">Windows SDK 7</a><a target="_blank"><br /> </a>濡傛灉娌℃湁榪欎釜錛岀紪璇戜細鎶ラ敊銆傚彟澶栬繖涓槸鍦ㄧ嚎瀹夎錛屾椂闂村緢涔咃紝鏈濂藉茍琛屽仛鍏朵粬鐨勪簨鎯呫?/p> <p>3. VS2005鐨勮ˉ涓?br /> KB918559<br /> KB926601<br /> KB935225<br /> KB943969<br /> KB947315</p> <p>宸茬粡瀹夎浜嗕互涓婅蔣浠剁殑绔ラ瀷錛屽氨鍙互寮濮嬭繘琛屼笅闈㈢殑宸ヤ綔楦?/p> <p>1. 浣跨敤svn鎶婁唬鐮?a target="_blank">checkout</a>涓嬫潵</p> <div><div class="hvzpftn" id="highlighter_301422" shell"=""><div><a command_help="" help"="">?</a></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div number1="" index0="" alt2"="">1</div><div number2="" index1="" alt1"="">2</div></td><td><div><div number1="" index0="" alt2"=""><code comments"=""># Non-members may check out a read-only working copy anonymously over HTTP.</code></div><div number2="" index1="" alt1"=""><code plain"="">svn checkout http:</code><code plain"="">//google-breakpad</code><code plain"="">.googlecode.com</code><code plain"="">/svn/trunk/</code> <code plain"="">google-breakpad-</code><code functions"="">read</code><code plain"="">-only</code></div></div></td></tr></tbody></table></div></div> <p>2. 璁劇疆Windows SDK 7<br /> 瑁呰繃鍏朵粬鐗堟湰Windows SDK鐨勭闉嬶紝璁板緱涓瀹氳榪涜榪欎竴姝ワ紝SDK鐨勫畨瑁呯▼搴忥紝騫朵笉浼氬府浣犺緗甐S銆?br /> 榪愯寮濮嬭彍鍗?>紼嬪簭->Microsoft Windows SDK v7.0->Visual Studio Registration->Windows SDK Configuration Tool錛岄夋嫨v7.0錛岀偣鍑籑ake Current銆?/p> <p>3. 涓簆ython璁劇疆鐜鍙橀噺<br /> 鐢變簬breakpad浣跨敤python鏉ョ敓鎴怶indows涓嬬殑宸ョ▼鏂囦歡錛屾墍浠ラ渶瑕佸皢python鎵鍦ㄧ洰褰曪紝璁劇疆鍒扮幆澧冨彉閲廝ATH涓幓銆?/p> <p>4. 鐢熸垚Windows宸ョ▼鏂囦歡</p> <div><div class="hvzpftn" id="highlighter_825083" shell"=""><div><a command_help="" help"="">?</a></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div number1="" index0="" alt2"="">1</div><div number2="" index1="" alt1"="">2</div><div number3="" index2="" alt2"="">3</div><div number4="" index3="" alt1"="">4</div></td><td><div><div number1="" index0="" alt2"=""><code functions"="">cd</code> <code string"="">"婧愮爜鐩綍/src/tools/gyp"</code></div><div number2="" index1="" alt1"=""> </div><div number3="" index2="" alt2"=""><code comments"=""># 娉ㄦ剰錛屾澶勪笉鑳戒嬌鐢ㄥ叏璺緞錛屼笉鐒朵細鍑洪敊</code></div><div number4="" index3="" alt1"=""><code plain"="">gyp.bat </code><code string"="">"../../client/windows/breakpad_client.gyp"</code></div></div></td></tr></tbody></table></div></div> <p>姝ゆ椂錛屽湪src/client/windows涓嬪氨鍙互鐪嬪埌鐢熸垚濂界殑breakpad_client.sln浜嗐傝繍琛屽惂錛?/p> <p>5. Hello World!<br /> 緙栬瘧build all錛岀幇鍦ㄤ竴鑸槸涓嶄細鎶ラ敊浜嗭紝濡傛灉鎶ラ敊錛岃媯鏌ユ槸涓嶆槸婕忎簡浠涔堟楠わ紝鐗瑰埆鏄ˉ涓併?br /> 緙栬瘧瀹屾垚涔嬪悗錛岃繍琛宑rash_generation_app鍚э紝榪欐槸浠栫殑嫻嬭瘯紼嬪簭錛宒ump鐨勯粯璁や綅緗繚瀛樺湪C:Dumps涓嬶紝璇鋒敞鎰忓厛寤虹珛濂界洰褰曪紝涓嶇劧浼氭棤娉曚嬌鐢ㄣ?br /> 鍚姩嫻嬭瘯紼嬪簭涔嬪悗錛屾鏃惰繕涓嶈兘鎶撳彇dump錛屽洜涓鴻繖涓槸breakpad涓殑鏈嶅姟鍣ㄧ錛岄渶瑕佸啀鍚姩涓涓祴璇曠▼搴忥紝鍦ㄧ浜屼釜嫻嬭瘯紼嬪簭涓紝鎴戜滑灝卞彲浠ヨ瘯楠孋lient鑿滃崟涓殑鍚勭宕╂簝浜嗐傝繖浜涘穿婧冮兘浼氳鎶撲綇杞瓨鍒癈:Dumps鐩綍涓嬨?/p> <h3><strong>濡備綍浣跨敤breakpad</strong></h3> <p> </p> <p>鍦╓indows涓?a target="_blank">浣跨敤breakpad鐨勬柟娉?/a>寰堢畝鍗曪紝鍙渶瑕佸垱寤轟竴涓狤xceptionHandler鐨勭被鍗沖彲錛屽ぇ瀹跺彲浠ュ湪crash_generation_app榪欎釜宸ョ▼涓壘鍒扮ず渚嬩唬鐮侊紝涔熷彲浠ョ洿鎺?a target="_blank">縐繪</a>Wiki錛屼笂闈㈣鐨勪篃寰堣緇嗐?/p> <p>1.榪涚▼鍐呮姄鍙朌ump鏂囦歡</p> <p>榪涚▼鍐呮姄鍙朌ump鏂囦歡鏄渶綆鍗曠殑breakpad鐨勭敤娉曘備嬌鐢ㄦ柟娉曞緢綆鍗曪細</p> <div><div class="hvzpftn" id="highlighter_394770" cpp"=""><div><a command_help="" help"="">?</a></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div number1="" index0="" alt2"="">1</div><div number2="" index1="" alt1"="">2</div><div number3="" index2="" alt2"="">3</div><div number4="" index3="" alt1"="">4</div><div number5="" index4="" alt2"="">5</div><div number6="" index5="" alt1"="">6</div><div number7="" index6="" alt2"="">7</div><div number8="" index7="" alt1"="">8</div><div number9="" index8="" alt2"="">9</div><div number10="" index9="" alt1"="">10</div><div number11="" index10="" alt2"="">11</div><div number12="" index11="" alt1"="">12</div><div number13="" index12="" alt2"="">13</div><div number14="" index13="" alt1"="">14</div><div number15="" index14="" alt2"="">15</div><div number16="" index15="" alt1"="">16</div><div number17="" index16="" alt2"="">17</div><div number18="" index17="" alt1"="">18</div><div number19="" index18="" alt2"="">19</div><div number20="" index19="" alt1"="">20</div><div number21="" index20="" alt2"="">21</div></td><td><div><div number1="" index0="" alt2"=""><code keyword="" bold"="">const</code> <code plain"="">std::wstring s_strCrashDir = L</code><code string"="">"c:\dumps"</code><code plain"="">;</code></div><div number2="" index1="" alt1"=""> </div><div number3="" index2="" alt2"=""><code color1="" bold"="">bool</code></div><div number4="" index3="" alt1"=""><code plain"="">InitBreakpad()</code></div><div number5="" index4="" alt2"=""><code plain"="">{</code></div><div number6="" index5="" alt1"=""><code spaces"="">    </code><code plain"="">google_breakpad::ExceptionHandler *pCrashHandler =</code></div><div number7="" index6="" alt2"=""><code spaces"="">        </code><code keyword="" bold"="">new</code> <code plain"="">google_breakpad::ExceptionHandler(s_strCrashDir,</code></div><div number8="" index7="" alt1"=""><code spaces"="">        </code><code plain"="">onExceptionFilter,</code></div><div number9="" index8="" alt2"=""><code spaces"="">        </code><code plain"="">onMinidumpDumped,</code></div><div number10="" index9="" alt1"=""><code spaces"="">        </code><code plain"="">NULL,</code></div><div number11="" index10="" alt2"=""><code spaces"="">        </code><code plain"="">google_breakpad::ExceptionHandler::HANDLER_ALL,</code></div><div number12="" index11="" alt1"=""><code spaces"="">        </code><code plain"="">MiniDumpNormal,</code></div><div number13="" index12="" alt2"=""><code spaces"="">        </code><code plain"="">NULL,</code></div><div number14="" index13="" alt1"=""><code spaces"="">        </code><code plain"="">NULL);</code></div><div number15="" index14="" alt2"=""> </div><div number16="" index15="" alt1"=""><code spaces"="">    </code><code keyword="" bold"="">if</code><code plain"="">(pCrashHandler == NULL) {</code></div><div number17="" index16="" alt2"=""><code spaces"="">        </code><code keyword="" bold"="">return</code> <code keyword="" bold"="">false</code><code plain"="">;</code></div><div number18="" index17="" alt1"=""><code spaces"="">    </code><code plain"="">}</code></div><div number19="" index18="" alt2"=""> </div><div number20="" index19="" alt1"=""><code spaces"="">    </code><code keyword="" bold"="">return</code> <code keyword="" bold"="">true</code><code plain"="">;</code></div><div number21="" index20="" alt2"=""><code plain"="">}</code></div></div></td></tr></tbody></table></div></div> <p>2.榪涚▼澶栨姄鍙朌ump鏂囦歡</p> <p>浣跨敤榪涚▼澶栨姄鍙朌ump鏃訛紝闇瑕佹寚瀹氭湇鍔$鍜屽鎴風錛屽湪鏈嶅姟绔腑闇瑕佸垱寤篊rashGenerationServer鐨勫疄渚嬶紝鑰屽湪瀹㈡埛绔腑鍒欏彧闇瑕佸垱寤篍xceptionHandler鍗沖彲銆傛澶栵紝濡傛灉鏈嶅姟绔嚜宸遍渶瑕佹姄榪涚▼鍐呯殑Dump錛岃灝唒ipe鐨勫弬鏁扮疆涓篘ULL銆?/p> <div><div class="hvzpftn" id="highlighter_709395" cpp"=""><div><a command_help="" help"="">?</a></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div number1="" index0="" alt2"="">1</div><div number2="" index1="" alt1"="">2</div><div number3="" index2="" alt2"="">3</div><div number4="" index3="" alt1"="">4</div><div number5="" index4="" alt2"="">5</div><div number6="" index5="" alt1"="">6</div><div number7="" index6="" alt2"="">7</div><div number8="" index7="" alt1"="">8</div><div number9="" index8="" alt2"="">9</div><div number10="" index9="" alt1"="">10</div><div number11="" index10="" alt2"="">11</div><div number12="" index11="" alt1"="">12</div><div number13="" index12="" alt2"="">13</div><div number14="" index13="" alt1"="">14</div><div number15="" index14="" alt2"="">15</div><div number16="" index15="" alt1"="">16</div><div number17="" index16="" alt2"="">17</div><div number18="" index17="" alt1"="">18</div><div number19="" index18="" alt2"="">19</div><div number20="" index19="" alt1"="">20</div><div number21="" index20="" alt2"="">21</div><div number22="" index21="" alt1"="">22</div><div number23="" index22="" alt2"="">23</div><div number24="" index23="" alt1"="">24</div><div number25="" index24="" alt2"="">25</div><div number26="" index25="" alt1"="">26</div><div number27="" index26="" alt2"="">27</div><div number28="" index27="" alt1"="">28</div><div number29="" index28="" alt2"="">29</div><div number30="" index29="" alt1"="">30</div><div number31="" index30="" alt2"="">31</div><div number32="" index31="" alt1"="">32</div><div number33="" index32="" alt2"="">33</div><div number34="" index33="" alt1"="">34</div><div number35="" index34="" alt2"="">35</div><div number36="" index35="" alt1"="">36</div><div number37="" index36="" alt2"="">37</div><div number38="" index37="" alt1"="">38</div><div number39="" index38="" alt2"="">39</div><div number40="" index39="" alt1"="">40</div><div number41="" index40="" alt2"="">41</div><div number42="" index41="" alt1"="">42</div><div number43="" index42="" alt2"="">43</div><div number44="" index43="" alt1"="">44</div></td><td><div><div number1="" index0="" alt2"=""><code keyword="" bold"="">const</code> <code color1="" bold"="">wchar_t</code> <code plain"="">s_pPipeName[] = L</code><code string"="">"\\.\pipe\breakpad\crash_handler_server"</code><code plain"="">;</code></div><div number2="" index1="" alt1"=""><code keyword="" bold"="">const</code> <code plain"="">std::wstring s_strCrashDir = L</code><code string"="">"c:\dumps"</code><code plain"="">;</code></div><div number3="" index2="" alt2"=""> </div><div number4="" index3="" alt1"=""><code color1="" bold"="">bool</code></div><div number5="" index4="" alt2"=""><code plain"="">InitBreakpad()</code></div><div number6="" index5="" alt1"=""><code plain"="">{</code></div><div number7="" index6="" alt2"=""><code spaces"="">    </code><code plain"="">google_breakpad::CrashGenerationServer *pCrashServer =</code></div><div number8="" index7="" alt1"=""><code spaces"="">        </code><code keyword="" bold"="">new</code> <code plain"="">google_breakpad::CrashGenerationServer(s_pPipeName,</code></div><div number9="" index8="" alt2"=""><code spaces"="">        </code><code plain"="">NULL,</code></div><div number10="" index9="" alt1"=""><code spaces"="">        </code><code plain"="">onClientConnected,</code></div><div number11="" index10="" alt2"=""><code spaces"="">        </code><code plain"="">NULL,</code></div><div number12="" index11="" alt1"=""><code spaces"="">        </code><code plain"="">onClientDumpRequest,</code></div><div number13="" index12="" alt2"=""><code spaces"="">        </code><code plain"="">NULL,</code></div><div number14="" index13="" alt1"=""><code spaces"="">        </code><code plain"="">onClientExited,</code></div><div number15="" index14="" alt2"=""><code spaces"="">        </code><code plain"="">NULL,</code></div><div number16="" index15="" alt1"=""><code spaces"="">        </code><code keyword="" bold"="">true</code><code plain"="">,</code></div><div number17="" index16="" alt2"=""><code spaces"="">        </code><code plain"="">&s_strCrashDir);</code></div><div number18="" index17="" alt1"=""> </div><div number19="" index18="" alt2"=""><code spaces"="">    </code><code keyword="" bold"="">if</code><code plain"="">(pCrashServer == NULL) {</code></div><div number20="" index19="" alt1"=""><code spaces"="">        </code><code keyword="" bold"="">return</code> <code keyword="" bold"="">false</code><code plain"="">;</code></div><div number21="" index20="" alt2"=""><code spaces"="">    </code><code plain"="">}</code></div><div number22="" index21="" alt1"=""> </div><div number23="" index22="" alt2"=""><code spaces"="">    </code><code comments"="">// 濡傛灉宸茬粡鏈嶅姟绔凡緇忓惎鍔ㄤ簡錛屾澶勫惎鍔ㄤ細澶辮觸</code></div><div number24="" index23="" alt1"=""><code spaces"="">    </code><code keyword="" bold"="">if</code><code plain"="">(!pCrashServer->Start()) {</code></div><div number25="" index24="" alt2"=""><code spaces"="">        </code><code keyword="" bold"="">delete</code> <code plain"="">pCrashServer;</code></div><div number26="" index25="" alt1"=""><code spaces"="">        </code><code plain"="">pCrashServer = NULL;</code></div><div number27="" index26="" alt2"=""><code spaces"="">    </code><code plain"="">}</code></div><div number28="" index27="" alt1"=""> </div><div number29="" index28="" alt2"=""><code spaces"="">    </code><code plain"="">google_breakpad::ExceptionHandler *pCrashHandler =</code></div><div number30="" index29="" alt1"=""><code spaces"="">        </code><code keyword="" bold"="">new</code> <code plain"="">google_breakpad::ExceptionHandler(s_strCrashDir,</code></div><div number31="" index30="" alt2"=""><code spaces"="">        </code><code plain"="">onExceptionFilter,</code></div><div number32="" index31="" alt1"=""><code spaces"="">        </code><code plain"="">onMinidumpDumped,</code></div><div number33="" index32="" alt2"=""><code spaces"="">        </code><code plain"="">NULL,</code></div><div number34="" index33="" alt1"=""><code spaces"="">        </code><code plain"="">google_breakpad::ExceptionHandler::HANDLER_ALL,</code></div><div number35="" index34="" alt2"=""><code spaces"="">        </code><code plain"="">MiniDumpNormal,</code></div><div number36="" index35="" alt1"=""><code spaces"="">        </code><code plain"="">(pCrashServer == NULL) ? s_pPipeName : NULL, </code><code comments"="">// 濡傛灉鏄湇鍔$錛屽垯鐩存帴浣跨敤榪涚▼鍐卍ump</code></div><div number37="" index36="" alt2"=""><code spaces"="">        </code><code plain"="">NULL);</code></div><div number38="" index37="" alt1"=""> </div><div number39="" index38="" alt2"=""><code spaces"="">    </code><code keyword="" bold"="">if</code><code plain"="">(pCrashHandler == NULL) {</code></div><div number40="" index39="" alt1"=""><code spaces"="">        </code><code keyword="" bold"="">return</code> <code keyword="" bold"="">false</code><code plain"="">;</code></div><div number41="" index40="" alt2"=""><code spaces"="">    </code><code plain"="">}</code></div><div number42="" index41="" alt1"=""> </div><div number43="" index42="" alt2"=""><code spaces"="">    </code><code keyword="" bold"="">return</code> <code keyword="" bold"="">true</code><code plain"="">;</code></div><div number44="" index43="" alt1"=""><code plain"="">}</code></div></div></td></tr></tbody></table></div></div> <p>浣跨敤breakpad鐨勬椂鍊欙紝鏈変袱涓湴鏂歸渶瑕佹敞鎰忥細<br /> 1. 璁板緱鎶奲reakpad鐨剆olution涓嬬殑鍑犱釜宸ョ▼錛屽寘鍚埌浣犲紑鍙戠殑宸ョ▼涓紝鎴栬呯洿鎺ュ寘鍚粬浠殑lib銆?br /> common錛氬熀紜鍔熻兘錛屽寘鍚竴涓GUID鐨勫皝瑁呭拰http涓婁紶鐨勭被銆?br /> exception_handler錛氱敤鏉ユ崟鑾峰穿婧冪殑綾匯?br /> crash_generation_server錛歜reakpad鐨勬湇鍔$錛岀敤鏉ュ湪浜х敓宕╂簝鏃舵姄鍙杁ump銆?br /> crash_generation_client錛歜reakpad鐨勫鎴風錛岀敤鏉ユ崟鑾峰綋鍓嶈繘紼嬬殑宕╂簝銆?/p> <p>2. 鍦ㄥ垵濮嬪寲breakpad涔嬪墠錛岃寰楀厛鍒涘緩濂絛ump鏂囦歡鐨勭洰褰曪紝涓嶇劧breakpad鏈嶅姟绔皢涓嶈兘姝e父鐨勫啓dump錛岃繖浼氬鑷碽reakpad瀹㈡埛绔湪宕╂簝鏃舵棤闄愮瓑寰呮湇鍔$dump鍐欏畬鐨勬秷鎭紝鏈鍚庡け鍘誨搷搴斻?/p></div><img src ="http://www.shnenglu.com/lauer3912/aggbug/159784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lauer3912/" target="_blank">RTY</a> 2011-11-07 21:34 <a href="http://www.shnenglu.com/lauer3912/archive/2011/11/07/159784.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璋冭瘯Release鍙戝竷鐗堢▼搴忕殑Crash閿欒 錛堣漿錛?/title><link>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159781.html</link><dc:creator>RTY</dc:creator><author>RTY</author><pubDate>Mon, 07 Nov 2011 13:15:00 GMT</pubDate><guid>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159781.html</guid><wfw:comment>http://www.shnenglu.com/lauer3912/comments/159781.html</wfw:comment><comments>http://www.shnenglu.com/lauer3912/archive/2011/11/07/159781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lauer3912/comments/commentRss/159781.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lauer3912/services/trackbacks/159781.html</trackback:ping><description><![CDATA[<div><h1><a id="viewpost1_TitleUrl" href="../../Walker/articles/146153.html">璋冭瘯Release鍙戝竷鐗堢▼搴忕殑Crash閿欒 錛堣漿錛?/a></h1> <div> <h2><a id="viewpost1_TitleUrl" href="../../woaidongmao/archive/2011/05/10/146092.html">璋冭瘯Release鍙戝竷鐗堢▼搴忕殑Crash閿欒</a> </h2> <div> <p><a title="http://blog.sina.com.cn/s/blog_48f93b530100fsln.html" >http://blog.sina.com.cn/s/blog_48f93b530100fsln.html</a></p> <p> </p> <p>鍦?span>Windows騫沖彴涓嬬敤C++寮鍙戝簲鐢ㄧ▼搴忥紝鏈涓嶆兂瑙佸埌鐨勬儏鍐墊亹鎬曞氨鏄▼搴忓穿婧冿紝鑰岃鎯寵В鍐沖紩璧烽棶棰樼殑bug錛屾渶鍥伴毦鐨勫簲璇ュ氨鏄皟璇時elease鐗堟湰浜嗐傚洜涓簉elease鐗堟湰鏉ュ氨灝戜簡寰堝璋冭瘯淇℃伅錛屾洿浣曞喌涓鑸兘鏄彂甯冨嚭鍘葷敱鐢ㄦ埛浣跨敤錛宑rash鐨勭幇鍦哄緢闅句繚鐣欏拰閲嶇幇銆傛湰鏂囧皢緇欏嚭鍑犱釜瑙e喅鏂規錛屽畬鎴愬release鐗堝簲鐢ㄧ▼搴廲rash閿欒鐨勮皟璇曘傦紙鏈枃鍙璁篧indows騫沖彴MSVC鐜涓嬬殑璋冭瘯錛屽浜庡叾浠栧鉤鍙板拰寮鍙戠幆澧冩病鏈夊叧娉紝璇峰ぇ瀹惰嚜宸卞熼壌鍜屽皾璇曘傦級</span></p> <p> <wbr></p> <p> <wbr> <wbr>  <wbr><strong>鏂規涓錛氬穿婧冨湴鍧</strong> <span><strong><span>+ MAP</span></strong></span><strong>鏂囦歡</strong></p> <p><span> <wbr> <wbr> <wbr> </span>榪欑鏂規鍙兘瀵?span><span>VC7</span>浠ュ墠鐨勭増鏈紑鍙戠殑紼嬪簭浣跨敤銆?span> <wbr></span></span></p> <p><span> <wbr> <wbr> <wbr> <strong>1</strong></span><strong>銆佸穿婧冨湴鍧</strong></p> <p><span> <wbr> <wbr> <wbr> <wbr> <wbr>鎵璋撳穿婧冨湴鍧灝辨槸寮曡搗紼嬪簭宕╂簝鐨勫唴瀛樺湴鍧錛屽湪<span>WinXP</span>涓嬪簲鐢ㄧ▼搴?span>crash</span>鐨勫璇濇濡備笅鍥撅細</span></p> <p align="center"><a target="_blank"><span><span><img title="clip_image001" alt="clip_image001" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image001_0ad42579-f1c9-44ae-b2f8-b50b8a737e0d.jpg" height="181" width="424" border="0" /></span></span></a></p> <p align="center"><a target="_blank"><span><span><img title="clip_image002" alt="clip_image002" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image002_cb3f00fa-aa22-4301-a42c-92c12dff2ea4.jpg" height="120" width="494" border="0" /></span></span></a></p> <p align="center"><a target="_blank"><span><span><img title="clip_image003" alt="clip_image003" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image003_fea81ac9-41ea-42be-a24f-d0fe99dafa80.jpg" height="380" width="494" border="0" /></span></span></a></p> <p><span> <wbr> <wbr> <wbr> </span><span>涓婇潰絎?span>2</span>寮犲浘涓敾綰㈢嚎鐨勫間負<span>crash</span>鐨勪唬鐮佸亸縐誨湴鍧錛岀<span>3</span>寮犲浘涓哄嵆<span>crash</span>緇濆鍦板潃錛涗竴鑸紩璧?span>crash</span>鐨勫師鍥犲涓哄唴瀛樻搷浣滈敊璇紝鎴戜滑鐢ㄨ繖涓や釜鍦板潃鍜?span>MAP</span>鏂囦歡灝辮兘瀹氫綅鍑洪敊鐨勪唬鐮佽銆?/span></p> <p><span> <wbr> <wbr> <wbr> <strong>2</strong></span><strong>銆?span><span>MAP</span>鏂囦歡</span></strong></p> <p><span> <wbr> <wbr> <wbr> MAP</span>鏂囦歡鏄褰曞簲鐢ㄧ▼搴忎俊鎭殑鏂囦歡錛堟枃鏈枃浠訛級錛岄噷闈㈠ぇ姒傚寘鍚簡紼嬪簭鐨勫叏灞絎﹀彿銆佹簮鐮佹ā鍧楀悕銆佹簮鐮佹枃浠跺拰琛屽彿絳変俊鎭紝鑰岃繖浜涗俊鎭兘澶熷府鍔╂垜浠畾浣嶅嚭閿欑殑浠g爜琛屻?/p> <p><span> <wbr> <wbr> <wbr> </span>鎬庢牱鐢熸垚<span><span>MAP</span>鏂囦歡鍛紵浠?span>VC6</span>涓轟緥錛屽湪 <span>Project Settings -> C/C++ <wbr>-> Debug info</span>涓紝閫夋嫨 <span>Line Numbers Only </span>錛涘湪 <span>Project Settings -> Link </span>涓紝閫夋嫨 <span>Generate mapfile</span>欏癸紝騫跺湪<span>Project Options </span>閲岄潰杈撳叆 </span><span>/MAPINFO:LINES</span> 鍜?<span><span>/MAPINFO:EXPORTS</span>錛岄噸鏂扮紪璇戠▼搴忓氨浼氱敓鎴?span>.map</span>鏂囦歡銆?/span></p> <p><span> <wbr> <wbr> <wbr> </span>浠ヤ笂璁劇疆瀵瑰簲鐨勭紪璇戦摼鎺ラ夐」鍒嗗埆鍒嗭細</p> <p><span> <wbr> <wbr> <wbr> </span><strong><span>/Zi</span></strong> — 琛ㄧず鐢熸垚<span><span>pdb</span>璋冭瘯淇℃伅錛?/span></p> <p><span> <wbr> <wbr> <wbr> </span><strong><span>/MAP[:filename]</span></strong> — 琛ㄧず鐢熸垚<span><span>map</span>鏂囦歡鍚嶏紱</span></p> <p><span> <wbr> <wbr> <wbr> </span><strong><span>/MAPINFO:EXPORTS <wbr></span></strong>— 琛ㄧず鐢熸垚鐨?span><span>map</span>鏂囦歡涓姞鍏?span>exported functions</span>錛堢敓鎴?span>DLL</span>鏂囦歡鏃訛級錛?/span></p> <p><span> <wbr> <wbr> <wbr> </span><strong><span>/MAPINFO:LINES <wbr></span></strong>— 琛ㄧず鐢熸垚鐨?span><span>map</span>鏂囦歡涓姞鍏ヤ唬鐮佽淇℃伅銆?/span></p> <p><span> <wbr> <wbr> <wbr> </span>鐢變簬<span><span>/MAPINFO:LINES</span>閫夐」鍦?span>VC8</span>浠ュ悗鐨勭増鏈腑涓嶅啀鏀寔錛屽洜姝ら氳繃<span>MAP</span>鏂囦歡涓殑淇℃伅鍜?span>crash</span>鍦板潃瀹氫綅鍑洪敊浠g爜琛屽氨姣旇緝鍥伴毦浜嗭紝鎵浠ヨ繖縐嶆柟妗堝彧鑳藉湪<span>VC7</span>鍙婁互鍓嶇殑鐗堟湰涓嬌鐢ㄣ?/span></p> <p><span> <wbr> <wbr> <wbr> <wbr>涓涓?span>MAP</span>鏂囦歡鐗囨紺轟緥濡備笅錛?span> <wbr></span></span></p> <p><span> <wbr> <wbr> <wbr> <a target="_blank"><span><span><img title="clip_image004" alt="clip_image004" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image004_fbf07de5-1b63-4473-917f-f6695904c9be.jpg" height="229" width="494" border="0" /></span> <wbr></span></a> <wbr></span></p> <p><span> <wbr> <wbr> <wbr> <a target="_blank"><span><span><img title="clip_image005" alt="clip_image005" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image005_93f97fcb-0900-4f57-baf2-29a04f821fa2.jpg" height="227" width="494" border="0" /></span></span></a></span></p> <p><span> <wbr> <wbr> <wbr> </span><span>鍥句腑<span>Rva+Base</span>鍒楃殑鍦板潃涓鴻琛屽嚱鏁板搴旂殑鍑芥暟緇濆鍦板潃錛?span>Address</span>鍒椾腑鍐掑彿鍚庨潰鐨勫湴鍧涓哄嚱鏁扮浉瀵瑰亸縐誨湴鍧銆?span> <wbr> <wbr> <wbr></span></span></p> <p><span> <wbr> <wbr> <wbr> <strong>3</strong></span><strong>銆佸畾浣?span><span>crash</span>浠g爜</span></strong></p> <p><span> <wbr> <wbr> <wbr> </span>鏈変簡涓婇潰鐨勪粙緇嶏紝瀹氫綅<span><span>crash</span>浠g爜灝卞緢綆鍗曚簡銆傜敤涓嬮潰鐨勫叕寮忔潵榪涜瀹氫綅錛?/span></p> <p><span> <wbr> <wbr> <wbr> </span><strong>宕╂簝琛屽亸縐?<span><span>= </span>宕╂簝鍦板潃 <span>- </span>宕╂簝鍑芥暟緇濆鍦板潃 <span>+ </span>鍑芥暟鐩稿鍋忕Щ</span></strong></p> <p><span> <wbr> <wbr> <wbr> </span>鎴戜滑棣栧厛鏍規嵁宕╂簝鍦板潃錛堢粷瀵瑰湴鍧錛夛紝鎸夌収鎵懼埌絎?span><span>2</span>寮犲浘涓?span>Rva+Base</span>鍒楃殑鍦板潃鎵懼埌鍙戠敓宕╂簝鐨勫嚱鏁幫紙鍗沖穿婧冨湴鍧澶т簬璇ュ嚱鏁拌鐨?span>Rva+Base</span>鍦板潃涓斿皬浜庝笅涓嚱鏁扮殑鍦板潃錛夛紝鐒跺悗鎵懼埌璇ヨ瀵瑰簲鐨勫嚱鏁扮浉瀵瑰亸縐誨湴鍧錛屽甫鍏ュ叕寮忎腑錛屽氨寰楀埌浜嗗穿婧冭鍋忕Щ錛岃鍊艱〃紺哄穿婧冭鐨勪唬鐮佺浉瀵逛簬浠g爜鎵鍦ㄥ嚱鏁扮殑鍋忕Щ閲忋傜敤璇ュ煎幓涓庣<span>3</span>寮犲浘涓搴斿嚱鏁板啋鍙峰悗闈㈢殑鍋忕Щ閲忓幓姣旇緝錛屾渶鎺ヨ繎鐨勫煎墠闈㈢殑閭d釜鍗佽繘鍒舵暟鍗充負浠g爜鎵鍦ㄥ嚱鏁頒腑鐨勮鍙楓?/span></p> <p><span> <wbr> <wbr> <wbr> ok</span>錛屽埌姝ゆ垜浠凡緇忔垚鍔熸壘鍒頒簡宕╂簝鐨勪唬鐮佽錛屽彧涓嶈繃榪欑鏂規硶榪樻槸姣旇緝璐瑰姏錛屽茍涓旈檺鍒舵瘮杈冨錛屾垜浠湅鐪嬩笅闈㈢殑鏂規銆?/p> <p>涓婄瘒緇欏嚭鐨勬柟妗堜竴榪樿琛ュ厖鍑犲彞銆傞氳繃<span>“crash鍦板潃 + MAP鏂囦歡”鏉ュ畾浣嶅嚭閿欎唬鐮佷綅緗櫧鐒墮渶瑕佺粡榪囨瘮杈冨鏉傜殑鍦板潃璁$畻錛屼絾鍗存槸鏈綆鍗曞疄鐜扮殑鏂瑰紡銆傚鏋滀粎浠呮兂閫氳繃宕╂簝鍦板潃瀹氫綅鍑洪敊鐨勫嚱鏁幫紝灝辨洿鍔犳柟渚夸簡銆傛垜鍦ㄧ綉涓婃壘鍒頒竴涓В鏋怣AP鏂囦歡鐨勫皬宸ュ叿錛屽彲浠ラ潪甯告竻鏅扮殑鍒楀嚭姣忎釜鍑芥暟鐨勫湴鍧錛屽茍涓斿彲浠ュ皢鍒嗘瀽琛ㄦ牸瀵煎嚭涓篍xcel鏂囦歡銆傚伐鍏蜂笅杞藉湴鍧錛?a ><span>http://e.ys168.com/?tinyfun</span></a></span>錛屽伐鍏風洰褰曚笅VCMapper.exe銆?/p> <p> <wbr> <wbr> <wbr> 鍙﹀涓婄瘒涓昏鍙傝冧袱綃囨枃绔狅細</p> <p> <wbr> <wbr> <wbr> <a ><span>http://www.vckbase.com/document/viewdoc/?id=908</span></a></p> <p> <wbr> <wbr> <wbr> <a ><span>http://www.vckbase.com/document/viewdoc/?id=1473</span></a></p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <strong>鏂規浜岋細宕╂簝鍦板潃<span> + MAP鏂囦歡 + COD鏂囦歡</span></strong></p> <p> <wbr> <wbr> <wbr> 鐢變簬<span>VC8浠ュ悗鐨勭増鏈兘涓嶅啀鏀寔MAP鏂囦歡涓駭鐢熶唬鐮佽淇℃伅錛屽洜姝ゆ垜浠鎵懼彟涓縐嶅畾浣嶆柟寮忥細COD鏂囦歡銆?/span></p> <p> <wbr> <wbr> <wbr> <strong><span>1</span></strong><strong>銆?span>COD鏂囦歡</span></strong></p> <p> <wbr> <wbr> <wbr> COD鏂囦歡鏄竴涓寘鍚簡姹囩紪鐮併佷簩榪涘埗鏈哄櫒鐮佸拰婧愪唬鐮佸搴斾俊鎭殑鏂囦歡錛屾瘡涓涓?span>cpp閮藉搴斾竴涓狢OD鏂囦歡銆傞氳繃榪欎釜鏂囦歡錛屾垜浠彲浠ラ潪甯告柟渚垮湴榪涜瀹氫綅銆?/span></p> <p> <wbr> <wbr> <wbr> 鍦?span>VC6涓敓鎴怌OD鏂囦歡鐨勮緗柟寮忎負錛歅roject Settings -> C/C++錛屽湪 Category 涓?Listing Files錛屽湪 Listing file type 緇勫悎妗嗕腑閫?Assembly錛孧achine code錛宎nd source銆傚湪VC8涓敓鎴怌OD鏂囦歡鐨勮緗柟寮忎負錛歅roject Properties -> C/C++ -> Output Files -> Assembler Output 欏癸紝閫夋嫨 Assembly錛孧achine code錛宎nd Source(/Facs)銆?/span></p> <p> <wbr> <wbr> <wbr></p> <p> <wbr> <wbr> <wbr> <strong><span>2</span></strong><strong>銆佸畾浣嶅穿婧冭</strong></p> <p> <wbr> <wbr> <wbr> 涓嬮潰閫氳繃涓句緥榪涜璇存槑銆傜幇鍦ㄦ垜鏈変竴涓熀浜庡璇濇鐨?span>MFC搴旂敤紼嬪簭CrashTest錛屽湪CCrashTestDlg::OnInitDialog鍑芥暟涓啓鍏ュ鑷碿rash鐨勪唬鐮佽鍙ワ紙絎?9琛岋級錛屾簮鏂囦歡濡備笅錛?/span></p> <p> <wbr> <wbr> <wbr> <a target="_blank"><span><span><img title="clip_image006" alt="clip_image006" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image006_887560ee-8b72-42ea-a623-220dcb47ac1f.jpg" height="169" width="360" border="0" /></span></span></a></p> <p> <wbr> <wbr> <wbr> 鏍規嵁宕╂簝鍦板潃錛?span>0x004012A3錛変互鍙奙AP鏂囦歡錛堝畾浣嶇墖孌靛浘鐗囧涓嬶級錛屽畾浣峜rash鍑芥暟涓篛nInitDialog錛涘茍涓旀垜浠彲浠ュ緢瀹規槗鍦拌綆楀嚭宕╂簝鍦板潃鐩稿浜庡穿婧冨嚱鏁扮殑鍋忕Щ閲忎負 0x004012A3 - 0x004011E0 = 0xC3銆?/span></p> <p> <wbr> <wbr> <wbr> <a target="_blank"><span><span><img title="clip_image007" alt="clip_image007" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image007_dc9962ce-f969-4c7f-aa0b-e973cac321ce.jpg" height="36" width="494" border="0" /></span></span></a></p> <p> <wbr> <wbr> <wbr> 鍐嶆潵鐪嬬湅<span>CrashTestDlg.cod鏂囦歡錛屾垜浠牴鎹枃浠朵腑婧愮爜淇℃伅鎵懼埌OnInitDialog鍑芥暟淇℃伅鐗囨錛?/span></p> <p> <wbr> <wbr> <wbr> <a target="_blank"><span><span><img title="clip_image008" alt="clip_image008" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image008_00ac91bc-99ca-4d4f-86cd-b0d1d23bb10a.jpg" height="231" width="494" border="0" /></span></span></a></p> <p> <wbr> <wbr> <wbr> 鍙互鐪嬪埌鍥劇墖涓涓琛屼負<span>OnInitDialog鍑芥暟姹囩紪浠g爜鐨勮搗濮嬭錛涙壘鍒?#8220;int * p = NULL;”榪欎竴鍙ユ簮鐮侊紝鍏跺墠闈㈢殑98琛ㄧず榪欒浠g爜鍦ㄦ簮鏂囦歡涓殑琛屽彿錛屼笅闈㈢殑000c1琛ㄧず鐩稿浜庡嚱鏁板紑濮嬩綅緗殑鍋忕Щ閲忥紝鍚庨潰鐨?#8220;33 c0”涓烘満鍣ㄧ爜錛?#8220;xor eax錛宔ax”涓烘眹緙栫爜銆傞偅涔堟垜浠牴鎹墠闈㈢畻鍑烘潵鐨勫亸縐婚噺0xC3錛屾壘鍒板搴斿嚭閿欑殑璇彞涓?9琛岋細“*p = 5;”銆?/span></p> <p> <wbr> <wbr> <wbr> 鎬葷粨涓涓嬪畾浣嶆楠わ細</p> <p> <wbr> <wbr> <wbr> 1) 鏍規嵁鍏紡 <strong><span>宕╂簝璇彞鍦ㄥ嚱鏁頒腑鍋忕Щ鍦板潃<span> = 宕╂簝鍦板潃 - 宕╂簝鍑芥暟鍦板潃</span></span></strong> 璁$畻鍑哄亸縐婚噺X錛?/p> <p> <wbr> <wbr> <wbr> 2) 鏍規嵁鍏紡 <strong><span>宕╂簝璇彞鍦?span>COD鏂囦歡涓湴鍧 = 宕╂簝鍑芥暟鍦–OD鏂囦歡涓湴鍧 + <wbr>X</span></span></strong> 璁$畻鍑哄湴鍧Y銆傚叾涓穿婧冨嚱鏁板湪COD鏂囦歡涓湴鍧涓篊OD鏂囦歡涓嚱鏁拌搗濮嬫嫭鍙?#8220;{”鍚庨潰琛ㄦ槑鐨勫湴鍧錛屼竴鑸儏鍐典笅涓?x0000錛?/p> <p> <wbr> <wbr> <wbr> 3) 鏍規嵁<span>Y鍦–OD鏂囦歡涓壘鍒板搴斾唬鐮佽銆?/span></p> <p> <wbr> <wbr> <wbr></p> <p> <wbr> <wbr> <wbr> ok錛屾柟妗堜簩浠嬬粛瀹屼簡銆傝繖縐嶆柟娉曟渶澶х殑濂藉鏄病鏈?span>VC寮鍙戠幆澧冪増鏈檺鍒訛紝鑰屼笖COD鏂囦歡閲岄潰鍖呭惈鐨勪俊鎭洿鍔犱赴瀵岋紝涓嶄絾鍙互甯姪鎴戜滑瀹氫綅crash錛岃繕鑳藉府鎴戜滑鍒嗘瀽寰堝涓滆タ銆傚綋鐒訛紝榪欎篃瀵艱嚧緙栬瘧鐢熸垚浜嗗緢澶氫俊鎭枃浠躲?/span></p> <p>鏍規嵁鍓嶉潰涓ょ瘒鍗氭枃錛屾垜浠瀹氫綅宕╂簝琛屼唬鐮侊紝蹇呴』瑕佽嚜宸辨牴鎹浉鍏充俊鎭枃浠惰繘琛岃綆椼傚鏋滈渶瑕佸鐞嗙殑閲忔瘮杈冨ぇ錛屾亹鎬曚細寰堣垂鍔涙皵銆傛湁娌℃湁鏇寸畝鍗曞揩閫熺殑鍔炴硶鍛紵</p> <p> <wbr> <wbr> <wbr> 鏈鐩存帴鐨勬兂娉曞氨鏄啓涓涓皬宸ュ叿錛屾牴鎹鍒欏拰淇℃伅榪涜鑷姩瀹氫綅錛屼笉榪囧紑鍙戣搗鏉ヤ篃鏄璐逛竴鐣姛澶殑銆備護浜哄紑蹇冪殑鏄紝鎴戜滑鍙互鎵懼埌綾諱技鐨勫伐鍏鳳紝鑰屼笖鏄紑婧愬厤璐圭殑錛佺▼搴忓憳鐨勪笘鐣屼篃璁稿緢澶氭椂鍊欓兘鏄繖涔堝崟綰屼箰浜庡垎浜紒</p> <p> <wbr> <wbr> <wbr></p> <p> <wbr> <wbr> <wbr> <strong>鏂規涓夛細宕╂簝鍦板潃<span> + PDB鏂囦歡 + CrashFinder</span></strong></p> <p> <wbr><wbr> <wbr><wbr> <wbr><wbr> CrashFinder鏄竴涓紑婧愬伐鍏鳳紝浣滆呮槸<span>John Robbin錛屽ぇ瀹跺彲浠ュ幓浠栫殑blog涓婂幓鎵懼叧浜嶤rashFinder鐨勪俊鎭傛垜浠繖閲屼互CrashFinder2.5鐗堟湰涓轟緥浠嬬粛錛岀浉鍏蟲枃绔犻摼鎺ヤ負錛?a ><span>http://www.wintellect.com/CS/blogs/jrobbins/archive/2006/04/19/crashfinder-returns.aspx</span></a></span></p> <p> <wbr><wbr> <wbr><wbr> <wbr> <strong><span>1</span></strong><strong>銆?span>PDB鏂囦歡</span></strong></p> <p> <wbr> <wbr> <wbr> PDB錛?span>Program Database錛夋枃浠朵腑鍖呭惈浜唀xe紼嬪簭鎵鏈夌殑璋冭瘯鐩稿叧淇℃伅錛屽叿浣撳彲浠ユ煡闃匨SDN銆傚綋緙栬瘧閫夐」璁劇疆涓?Zi錛岄摼鎺ラ夐」璁劇疆涓?DEBUG錛?OPT:REF鏃訛紝灝變細鐢熸垚宸ョ▼鐨?pdb鏂囦歡銆傚叿浣撳埌VC2005涓紝灝辨槸 Project Propertise -> C/C++ -> General -> Debug Information Format 欏硅緗負 Program Database錛?Zi錛夛紝Linker -> Debugging -> Generate Debug Info 欏硅緗負 Yes錛?Debug錛夛紝Linker -> Optimization -> References <wbr>欏硅緗負 Eliminate <wbr>Unreferenced Data錛?OPT:REF錛夈?/span></p> <p> <wbr> <wbr> <wbr> 鍙璁劇疆浠ヤ笂閫夐」錛?span>release鐗堟湰涔熻兘鐢熸垚PDB鏂囦歡銆傚綋鐒訛紝瀵瑰簲鐨勫簲鐢ㄧ▼搴忎篃浼氱◢澶с?/span></p> <p> <wbr> <wbr> <wbr> <strong><span>2</span></strong><strong>銆?span>CrashFinder</span></strong></p> <p> <wbr> <wbr> <wbr> CrashFinder鑳藉榪愯闇瑕佷袱涓潯浠訛細涓鏄郴緇熷繀欏昏鏈?span>dbghelp.dll鏂囦歡錛涗簩鏄疨DB鏂囦歡蹇呴』涓巈xe鏂囦歡鍦ㄤ竴涓礬寰勪笅銆傚浜巇bghelp.dll錛屼竴鑸湪緋葷粺system32璺緞涓嬮兘鏈夛紝濡傛灉娌℃湁涓嬭澆涓涓斁鍒拌繖涓洰褰曚笅灝卞彲浠ヤ簡銆?/span></p> <p> <wbr> <wbr> <wbr> 鍏堢湅涓涓?span>CrashFinder鐨勭晫闈€?/span></p> <p> <wbr> <wbr> <wbr></p> <p align="center"><a target="_blank"><span><span><img title="clip_image009" alt="clip_image009" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image009_60e666ee-6f31-4132-929c-3ef20c5a9fde.jpg" height="327" width="494" border="0" /></span></span></a></p> <p> <wbr> <wbr> <wbr> 鐢ㄨ搗鏉ヤ篃闈炲父綆鍗曘傞鍏堥夋嫨<span>File->New鎴栫偣鍑誨伐鍏鋒爮鏂板緩鎸夐挳錛岄夋嫨瑕佽皟璇曠殑exe鏂囦歡鎵撳紑錛屼細鍙戠幇exe鍙婃墍渚濊禆鐨刣ll鏂囦歡淇℃伅閮藉凡緇忓姞杞借繘鏉ャ傚湪涓嬪崐閮ㄥ垎鐨勭紪杈戞涓緭鍏ュ穿婧冨湴鍧錛?6榪涘埗錛夛紝鐐瑰彸杈圭殑“Find”鎸夐挳錛屽氨浼氬湪涓嬮潰鏄劇ず宕╂簝鐨勬簮鏂囦歡璺緞銆佸悕縐頒互鍙婂穿婧冩墍鍦ㄨ鍙蜂簡錛屽涓嬪浘鎵紺恒?/span></p> <p align="center"><a target="_blank"><span><span><img title="clip_image010" alt="clip_image010" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image010_4b25ce3c-1bea-4818-be58-230d6cba8a6a.jpg" height="370" width="494" border="0" /></span></span></a></p> <p> <wbr> <wbr> <wbr> 鐢?span>CrashFinder榪涜crash瀹氫綅鐪熺殑闈炲父鏂逛究銆備絾鏄垜鍦ㄤ嬌鐢ㄨ繃紼嬩腑鍙戠幇浜嗕竴涓猙ug錛屾瘡嬈″惎鍔ㄧ▼搴忓悗錛岀洿鎺ユ柊寤虹殑璇濆姞杞借繘鏉ョ殑exe妯″潡閮芥樉紺哄弶錛屾彁紺烘壘涓嶅埌debug symbols銆備絾鏄敤鎵撳紑鎸夐挳闅忎究鎵撳紑涓涓枃浠跺け璐ュ悗錛屽啀鏂板緩灝辮兘鎴愬姛銆傜寽嫻嬪彲鑳芥槸鐩存帴鏂板緩錛屽畾浣峆DB鏂囦歡鏃剁殑璺緞涓嶅寮曡搗鐨勩傛湁婧愮爜錛屼絾鏄噿鐨勭湅浜嗗懙鍛碉紝澶у鎰熷叴瓚e彲浠ヨ瘯涓涓嬨?/span></p> <p> <wbr> <wbr> <wbr> 濂戒簡錛屾柟妗堜笁灝變粙緇嶅埌榪欓噷錛屽悗闈㈣繕鏈夋洿鍔犲己澶х殑鏂規<span> : )</span></p> <p>鍓嶉潰鍑犱釜鏂規閮芥槸鐩存帴瀹氫綅<span>crash鐨勪唬鐮佷綅緗紝浣嗘槸鍦ㄦ瘮杈冨ぇ鍨嬬殑紼嬪簭涓紝鍙煡閬撹繖涓俊鎭繕鏄繙榪滀笉澶熺殑錛屾垜浠笇鏈涚煡閬撴洿澶氬叧浜庤皟鐢ㄥ嚱鏁伴『搴忓強鍙橀噺鍊肩瓑淇℃伅錛屼篃灝辨槸crash鏃惰皟鐢ㄥ爢鏍堜俊鎭?/span></p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <strong>鏂規鍥涳細<span>SetUnhandledExceptionFil<wbr>ter + StackWalker</span></strong></p> <p> <wbr> <wbr> <wbr> 榪欎釜鏂規闇瑕佽嚜宸卞姩鎵嬪線宸ョ▼閲屾坊鍔犱唬鐮佷簡銆傝瀹炵幇涓婇潰鐨勬兂娉曪紝闇瑕佸仛涓や歡浜嬫儏錛?span>1銆侀渶瑕佸湪crash鏃舵湁鏈轟細瀵圭▼搴忓爢鏍堣繘琛屽鐞嗭紱2銆佸鍫嗘爤淇℃伅榪涜鏀墮泦銆?/span></p> <p> <wbr> <wbr> <wbr> <strong><span>1</span></strong><strong>銆?span>SetUnhandleExceptionFilt<wbr>er鍑芥暟</span></strong></p> <p> <wbr> <wbr> <wbr> Windows騫沖彴涓嬬殑<span>C++紼嬪簭寮傚父閫氬父鍙垎涓轟袱縐嶏細緇撴瀯鍖栧紓甯革紙Structured Exception錛屽彲浠ョ悊瑙d負涓庢搷浣滅郴緇熺浉鍏崇殑寮傚父錛夊拰C++寮傚父銆傚浜庣粨鏋勫寲寮傚父澶勭悊錛圫EH錛夛紝鍙互鎵懼埌寰堝璧勬枡錛屽湪姝や笉緇嗚銆傚浜巆rash閿欒錛屼竴鑸敱鏈姝e父鎹曡幏鐨勫紓甯稿紩璧鳳紝Windows鎿嶄綔緋葷粺鎻愪緵浜嗕竴涓狝PI鍑芥暟鍙互鍦ㄧ▼搴廲rash涔嬪墠鏈夋満浼氬鐞嗚繖浜涘紓甯革紝灝辨槸SetUnhandleExceptionFilt<wbr>er鍑芥暟銆傦紙C++涔熸湁涓涓被浼煎嚱鏁皊et_terminate鍙互澶勭悊鏈鎹曡幏鐨凜++寮傚父銆傦級</span></p> <p> <wbr> <wbr> <wbr> SetUnhandleExceptionFilt<wbr>er鍑芥暟澹版槑濡備笅錛?/p> <p> <wbr> <wbr> <wbr> LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFil<wbr>ter(<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> LPTOP_LEVEL_EXCEPTION_FILTER <em>lpTopLevelExceptionFilte<wbr>r</em><br /> <wbr> <wbr> <wbr> );</p> <p> <wbr> <wbr> <wbr> 鍏朵腑<span> LPTOP_LEVEL_EXCEPTION_FILTER 瀹氫箟濡備笅錛?/span></p> <p> <wbr> <wbr> <wbr> typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(<br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> __in struct _EXCEPTION_POINTERS *ExceptionInfo<br /> <wbr> <wbr> <wbr> );<br /> <wbr> <wbr> <wbr> typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;</p> <p> <wbr> <wbr> <wbr> 綆鍗曟潵璇達紝<span>SetUnhandleExceptionFilt<wbr>er鍏佽鎴戜滑璁劇疆涓涓嚜宸辯殑鍑芥暟浣滀負鍏ㄥ眬SEH榪囨護鍑芥暟錛屽綋紼嬪簭crash鍓嶄細璋冪敤鎴戜滑鐨勫嚱鏁拌繘琛屽鐞嗐傛垜浠彲浠ュ埄鐢ㄧ殑鏄?_EXCEPTION_POINTERS 緇撴瀯綾誨瀷鐨勫彉閲廍xceptionInfo錛屽畠鍖呭惈浜嗗寮傚父鐨勬弿榪頒互鍙婂彂鐢熷紓甯哥殑綰跨▼鐘舵侊紝榪囨護鍑芥暟鍙互閫氳繃榪斿洖涓嶅悓鐨勫兼潵璁╃郴緇熺戶緇繍琛屾垨閫鍑哄簲鐢ㄧ▼搴忋?/span></p> <p> <wbr> <wbr> <wbr> 鍏充簬<span> SetUnhandleExceptionFilt<wbr>er 鍑芥暟鐨勫叿浣撶敤娉曞拰紺轟緥璇峰弬鑰僊SDN銆?/span></p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <strong><span>2</span></strong><strong>銆?span>StackWalker</span></strong><br /> <wbr> <wbr> <wbr> 鐜板湪鎴戜滑宸茬粡鏈夋満浼氬彲浠ュ湪<span>crash涔嬪墠瀵圭▼搴忕姸鎬佷俊鎭繘琛屽鐞嗕簡錛屽彧闇瑕佺敓鎴愬茍淇濆瓨鍫嗘爤淇℃伅灝卞ぇ鍔熷憡鎴愪簡銆俉indows鐨刣bghelp.dll搴撴彁渚涗簡涓涓嚱鏁板彲浠ュ緱鍒板綋鍓嶅爢鏍堜俊鎭細StackWalk64錛堝湪Win2K浠ュ墠鐗堟湰涓負StackWalk錛夈傝鍑芥暟澹版槑濡備笅錛?/span></p> <p> <wbr> <wbr> <wbr> BOOL WINAPI StackWalk64(<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> DWORD <em>MachineType</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> HANDLE <em>hProcess</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> HANDLE <em>hThread</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in_out <wbr> <wbr> <wbr> <wbr> <wbr> LPSTACKFRAME64 <em>StackFrame</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in_out <wbr> <wbr> <wbr> <wbr> <wbr> PVOID <em>ContextRecord</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> PREAD_PROCESS_MEMORY_ROUTINE64 <em>ReadMemoryRoutine</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> PFUNCTION_TABLE_ACCESS_ROUTINE64 <em>FunctionTableAccessRouti<wbr>ne</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> PGET_MODULE_BASE_ROUTINE64 <em>GetModuleBaseRoutine</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> PTRANSLATE_ADDRESS_ROUTINE64 <em>TranslateAddress</em><br /> <wbr> <wbr> <wbr> );<br /> <wbr> <wbr> <wbr> 璇ュ嚱鏁扮殑鍏蜂綋鐢ㄦ硶鍙互鍙傝?span>MSDN銆傚湪榪欓噷鎺ㄨ崘涓涓墰浜哄啓濂界殑StackWalker錛屽彲浠ョ洿鎺ユ嬁鏉ョ敤錛屽紑婧愮殑銆係tackWalker鎻愪緵浜嗕竴涓熀綾伙紝緇欏嚭浜嗗嚑涓畝鍗曠殑鎺ュ彛錛屽彲浠ユ柟渚垮湴鐢熸垚鍫嗘爤淇℃伅錛屽茍涓旀敮鎸佷竴緋誨垪VC鐗堟湰錛岄潪甯稿ソ鐢ㄣ傛垜浠彲浠ヨ嚜宸卞啓涓涓瓙綾伙紝騫墮噸杞借櫄鍑芥暟OnOutput錛屽氨鍙互灝嗗爢鏍堜俊鎭緭鍑轟負鐗瑰畾鏍煎紡浜嗐係tackWalker鐨勫湴鍧涓猴細<a ><span>http://www.codeproject.com/KB/threads/StackWalker.aspx</span></a></span>銆?/p> <p> <wbr> <wbr> <wbr> 涓嶈繃瀵逛簬<span>Release鐗堟湰鏉ヨ錛孲tackWalk64鍑芥暟鑾峰緱鐨勫爢鏍堜俊鎭湁鍙兘涓嶅畬鏁淬傚鏋滃紓甯告槸鐢盡FC鐨勬ā鍧楁姏鍑猴紝閭d箞鑾峰緱鐨勫爢鏍堝彲鑳界己灝戝墠闈㈣皟鐢ㄦā鍧椾俊鎭傚彟澶栵紝StackWalk64闇瑕佹渶鏂扮殑dbghelp.dll鏂囦歡鏀寔鎵嶈兘宸ヤ綔錛涜姝g‘杈撳嚭crash鐨勫嚱鏁板悕鍜岃鍙鳳紝闇瑕佽pdb鏂囦歡鏀寔銆備互涓婁笉瓚蟲湁鍙兘褰卞搷杈撳嚭淇℃伅鐨勫畬鏁存у拰鏁堟灉錛岃屽浜庡彂甯冨湪澶栫殑紼嬪簭錛岃甯︿笂pdb鏂囦歡鍑犱箮涓嶅彲鑳斤紝鍥犳榪欎釜鏂規榪樻槸鏈夌己鎲劇殑錛屾瘮杈冮傜敤浜庢湰鍦扮殑release鐗堟湰璋冭瘯銆?/span></p> <p> <wbr> <wbr> <wbr> 涓嬩竴綃囨垜浠皢浠嬬粛涓涓洿鍔犲畬鍠勭殑瑙e喅鏂規</p> <p>褰撴垜浠妸鑷繁鐨?span>release鐗堟湰紼嬪簭鍙戝竷鍑哄幓浠ュ悗錛屼竴鑸兘鏄湪鐢ㄦ埛鐨勬満鍣ㄤ笂榪愯銆傝繖縐嶆儏鍐典笅錛屽浜庣鍥涚鏂規錛屽洜涓洪渶瑕乸db鏂囦歡鎵嶈兘澶熸紜敓鎴愬爢鏍堣皟鐢ㄧ殑鍑芥暟琛屽彿鍙婁唬鐮佽鍙鳳紝鍥犳鏂規鍥涘彧閫傜敤浜庢湰鍦皉elease鐗堢殑璋冭瘯錛屽惁鍒欏彧鑳界敓鎴愪笉瀹屾暣鐨勫爢鏍堜俊鎭傚浜庡墠涓夌鏂規錛屽叾瀹炲彧闇瑕佺敤鎴峰憡鐭ュ穿婧冨湴鍧錛岀劧鍚庡湪鏈湴鏌ユ壘crash鍦板潃灝卞彲浠ヤ簡錛屼絾鏄畾浣峜rash鐨勮繃紼嬮潪甯鎬笉鏂逛究錛屽鏋渃rash鐨勬儏鍐墊瘮杈冨錛屽墠涓夌鏂規閮戒笉鍚堥傘傝屼笖錛屽墠涓夌鏂規鍧囦笉鑳界敓鎴愬爢鏍堣皟鐢ㄤ俊鎭紝瀵逛簬debug鐨勪綔鐢ㄦ湁闄愩?/span></p> <p> <wbr> <wbr> <wbr> 涓嬮潰鎴戜滑灝辨潵鐪嬩竴涓洿鍔犲畬鍠勭殑瑙e喅鏂規銆?/p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <strong>鏂規浜旓細<span>SetUnhandledExceptionFil<wbr><wbr>ter + Minidump</span></strong></p> <p> <wbr> <wbr> <wbr> SetUnhandleExceptionFilt<wbr>er鍑芥暟鎴戜滑宸茬粡浠嬬粛榪囦簡錛屾湰鏂規鐨勬濊礬榪樻槸瑕佸埄鐢ㄦ垜浠嚜宸辯殑寮傚父澶勭悊鍑芥暟錛屾潵鐢熸垚<span>minidump鏂囦歡銆?/span></p> <p> <wbr> <wbr> <wbr> <strong><span>1</span></strong><strong>銆?span>Minidump姒傚康</span></strong></p> <p> <wbr> <wbr> <wbr> minidump錛堝皬瀛樺偍鍣ㄨ漿鍌級鍙互鐞嗚В涓轟竴涓?span>dump鏂囦歡錛岄噷闈㈣褰曚簡鑳藉甯姪璋冭瘯crash鐨勬渶灝忔湁鐢ㄤ俊鎭傚疄闄呬笂錛屽鏋滀綘鍦?緋葷粺灞炴?-> 楂樼駭 -> 鍚姩鍜屾晠闅滄仮澶?-> 璁劇疆 -> 鍐欏叆璋冭瘯淇℃伅 涓夋嫨“灝忓唴瀛樿漿鍌?64 KB)”鐨勮瘽錛屽綋緋葷粺鎰忓鍋滄鏃墮兘浼氬湪C:\Windows\Minidump\璺緞涓嬬敓鎴愪竴涓?dmp鍚庣紑鐨勬枃浠訛紝榪欎釜鏂囦歡灝辨槸minidump鏂囦歡錛屽彧涓嶈繃榪欎釜鏄唴鏍告佺殑minidump銆?/span></p> <p> <wbr> <wbr> <wbr>鎴戜滑瑕佺敓鎴愮殑鏄敤鎴鋒佺殑<span>minidump錛屾枃浠朵腑鍖呭惈浜嗙▼搴忚繍琛岀殑妯″潡淇℃伅銆佺嚎紼嬩俊鎭佸爢鏍堣皟鐢ㄤ俊鎭瓑銆傝屼笖涓轟簡絎﹀悎鍏秏ini鐨勭壒鎬э紝dump鏂囦歡鏄帇緙╄繃鐨勩?/span></p> <p> <wbr> <wbr> <wbr> <strong><span>2</span></strong><strong>銆佺敓鎴?span>minidump鏂囦歡</span></strong></p> <p> <wbr> <wbr> <wbr> 鐢熸垚<span>minidump鏂囦歡鐨凙PI鍑芥暟鏄疢iniDumpWriteDump錛岃鍑芥暟闇瑕乨bghelp.lib鏀寔錛屽叾鍘熷瀷濡備笅:</span></p> <p> <wbr> <wbr> <wbr> BOOL WINAPI MiniDumpWriteDump(<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> HANDLE <em>hProcess</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> DWORD <em>ProcessId</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> HANDLE <em>hFile</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> MINIDUMP_TYPE <em>DumpType</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> PMINIDUMP_EXCEPTION_INFORMATION <em>ExceptionParam</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> PMINIDUMP_USER_STREAM_INFORMATION <em>UserStreamParam</em>,<br /> <wbr> <wbr> <wbr> <wbr> <wbr> __in <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> PMINIDUMP_CALLBACK_INFORMATION <em>CallbackParam</em><br /> <wbr> <wbr> <wbr> );</p> <p> <wbr> <wbr> <wbr> 鍦ㄦ垜浠殑寮傚父澶勭悊鍑芥暟涓姞鍏ヤ互涓嬩唬鐮侊細</p> <p> <wbr> <wbr> <wbr> HANDLE hFile = ::CreateFile( _T("E:\\dumpfile.dmp"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);<br /> <wbr> <wbr> <wbr> <wbr> if( hFile != INVALID_HANDLE_VALUE)<br /> <wbr> <wbr> <wbr> <wbr> {<br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> MINIDUMP_EXCEPTION_INFORMATION einfo;<br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> einfo.ThreadId = ::GetCurrentThreadId();<br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> einfo.ExceptionPointers = pExInfo;<br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> einfo.ClientPointers = FALSE;</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> ::MiniDumpWriteDump(::GetCurrentProcess(), ::GetCurrentProcessId(), hFile, MiniDumpNormal, &einfo, NULL, NULL);<br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> ::CloseHandle(hFile);<br /> <wbr> <wbr> <wbr> <wbr> }</p> <p> <wbr> <wbr> <wbr> 鍏朵腑錛?span>pExInfo鍙橀噺涓哄紓甯稿鐞嗗嚱鏁癙EXCEPTION_POINTERS綾誨瀷鐨勫弬鏁般傚叿浣撹鍙傝僊SDN銆?/span></p> <p> <wbr> <wbr> <wbr> <strong><span>3</span></strong><strong>銆佽皟璇?span>minidump</span></strong></p> <p> <wbr> <wbr> <wbr> <wbr>璋冭瘯<span>dump鏂囦歡棣栧厛闇瑕乸db鏂囦歡錛屽洜姝ゆ垜浠琤uild紼嬪簭鏃墮渶瑕佽緗?Debug Infomation Format 涓?“Program Database錛?Zi錛?#8221;銆傚叾嬈★紝鎴戜滑榪樿紜繚鎵鐢ㄧ殑dump鏂囦歡涓庢簮浠g爜銆乪xe銆乸db鏂囦歡鐗堟湰鏄竴鑷寸殑錛岃繖瑕佹眰鎴戜滑蹇呴』緇存姢濂界▼搴忕増鏈俊鎭?/span></p> <p> <wbr> <wbr> <wbr> 璋冭瘯<span>minidump鏈鏂逛究鐨勭幆澧冨氨鏄疺S浜嗭紝鎴戜滑鍙灝?dmp銆?exe銆?pdb鏂囦歡鏀懼湪涓涓礬寰勪笅錛屼繚璇佹簮浠g爜鏂囦歡鐨勮礬寰勪笌緙栬瘧鏃剁殑璺緞涓鑷村氨鍙互浜嗭紝鍓╀笅鐨勫氨鏄疺S甯垜浠畬鎴愩傚弻鍑?dmp鏂囦歡鎴栬呭湪鏂囦歡鎵撳紑宸ョ▼涓夋嫨“dump files”錛屽姞杞絛ump鏂囦歡錛岀劧鍚庢寜F5榪愯灝辮兘鐩存帴鎭㈠crash鏃剁殑鐜板満浜嗭紝浣犲彲浠ュ畾浣峜rash鐨勪唬鐮侊紝鍙互鏌ョ湅璋冪敤鍫嗘爤錛屽彲浠ユ煡鐪嬬嚎紼嬪拰妯″潡淇℃伅...涓鍒囬兘璺熶綘璁劇疆鏂偣璋冭瘯涓鏍鳳紝澶己澶т簡錛佺湅涓埅鍥懼惂銆?/span></p> <p><a target="_blank"><span><span><img title="clip_image012" alt="clip_image012" src="../../images/cppblog_com/woaidongmao/WindowsLiveWriter/ReleaseCrash_A881/clip_image012_3df8e4ef-d0e8-49d3-a9af-47f58cc713c6.jpg" height="469" width="616" border="0" /></span></span></a></p> <p> <wbr> <wbr> <wbr> 闇瑕佹敞鎰忕殑鏄紝瀵逛簬<span>release鐗堢殑紼嬪簭鏉ヨ錛屽緢澶氫唬鐮佹槸緇忚繃緙栬瘧鍣ㄤ紭鍖栬繃鐨勶紝鍥犳瀹氫綅鐨勬椂鍊欏彲鑳戒細鏈夋墍鍋忓樊錛屽ぇ瀹跺彲浠ヨ冭檻璁劇疆閫夐」鍘繪帀浠g爜浼樺寲銆?/span></p> <p> <wbr> <wbr> <wbr> 鍏朵粬鍙互璋冭瘯<span>minidump鐨勫伐鍏瘋繕鏈塛inDbg絳夛紝澶у鍙互鏌ラ槄鐩稿叧璧勬枡銆?/span></p> <p> <wbr> <wbr> <wbr> 鏈枃涓昏鍙傝冧簡榪欑瘒鏂囩珷錛?span><a ><span>http://vicchina.51.net/research/other/seh/minidumps/intro.htm</span></a></span>銆?/p> <p> <wbr> <wbr> <wbr> 涓嬩竴綃囷紝鎴戜滑灝嗙粰鍑轟竴涓皟璇?span>release鍙戝竷紼嬪簭鐨勫畬緹庤В鍐蟲柟妗堬紝閫傚悎鐢ㄦ埛閲忚緝澶х殑搴旂敤鍙戝竷紼嬪簭鐨勮皟璇曘?/span></p> <p>涓婁竴綃囨垜浠凡緇忕粰鍑轟簡鏂規錛岃兘澶熼潪甯告柟渚跨殑閫氳繃<span>dump鏂囦歡瀵筩rash閿欒榪涜璋冭瘯鍜屽畾浣嶏紱浠庢暣涓祦紼嬩笂鐪嬭繕宸渶鍚庝竴姝ワ紝鍗蟲庢牱鎷垮埌crash鏃朵駭鐢熺殑dump鏂囦歡銆傚鏋滃彲浠ヨ鐢ㄦ埛鎶婃枃浠跺彂閫佽繃鏉ヨ嚜鐒朵笉閿欙紝浣嗗浜庣被浼煎厤璐瑰叡浜蔣浠剁瓑鍦ㄤ簰鑱旂綉涓婂彂甯冪殑紼嬪簭鍛紵鎴戜滑鐨勭敤鎴鋒槸涓嶇‘瀹氱殑錛岃屼笖鐢ㄦ埛閲忔湁鍙兘闈炲父澶э紝鍗充嬌鎴戜滑鑳芥兂鍔炴硶鑱旂郴鍒扮敤鎴鳳紝鎬諱笉鑳芥尐涓幓鏀墮泦crash淇℃伅鍚с?/span></p> <p> <wbr> <wbr> <wbr> 鎴戜滑闇瑕佷竴縐嶆柟妗堬紝鑳藉鎻愪緵<span>crash淇℃伅姹囨姤鍔熻兘銆?/span></p> <p> <wbr> <wbr> <wbr> 鎴戜滑鍙互鏋惰涓鍙版湇鍔″櫒涓撻棬榪涜淇℃伅鏀墮泦錛屽彧瑕佸鎴風鍦?span>crash鏃舵紜眹鎶ュ嵆鍙紝浣嗘槸鐩稿簲鐨勭淮鎶ゆ垚鏈拰寮鍙戦毦搴︿篃涓嶅彲蹇借銆傛湁娌℃湁鏇寸畝鍗曠殑鏂規硶鍛紵榪樿寰楁垜鐨勫崥鏂?#8220;<a target="_blank"><span><span>涓虹▼搴忔坊鍔犺嚜鍔ㄥ彂閫丒mail</span><span>鍔熻兘</span></span></a>”</span>鍚楋紵榪欏氨鏄畝鍗曟湁鏁堢殑鏂規硶錛?/p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <strong>鏂規鍏細<span>minidump + email</span></strong></p> <p> <wbr> <wbr> <wbr> 鎴戜滑鍙渶瑕佸湪寮傚父澶勭悊鏃訛紝鍏堢敓鎴?span>minidump淇℃伅鏂囦歡錛屽啀鐢╡mail鏂瑰紡灝嗘枃浠跺彂閫佸埌鎸囧畾閭灝辮浜嗐傚墿涓嬬殑灝辨槸鎴戜滑姣忓ぉ鏌ョ湅閭錛屾彁鍙杁ump鏂囦歡榪涜璋冭瘯浜嗐?/span></p> <p> <wbr> <wbr> <wbr> <strong><span>1</span></strong><strong>銆?span>Email鍔熻兘</span></strong></p> <p> <wbr> <wbr> <wbr> 棣栧厛鎴戜滑鏉ョ湅涓涓?span>email鍙戦侀兘闇瑕佸摢浜涚浉鍏充俊鎭?/span></p> <p> <wbr> <wbr> <wbr> a銆佸彂閫佺閭甯愭埛錛?/p> <p> <wbr> <wbr> <wbr> b銆佹帴鏀剁閭甯愭埛錛?/p> <p> <wbr> <wbr> <wbr> c銆?span>email鏍囬錛屼竴鑸簲鏈夎蔣浠跺悕縐板強鐗堟湰淇℃伅錛?/span></p> <p> <wbr> <wbr> <wbr> d銆?span>email姝f枃錛屼竴鑸簲鏈夌畝鍗曠殑crash淇℃伅鎻愮ず錛屼互鍖哄埆涓嶅悓鍘熷洜閫犳垚鐨刢rash錛?/span></p> <p> <wbr> <wbr> <wbr> <wbr>e銆?span>email闄勪歡錛屽綋鐒跺氨鏄垜浠殑dump鏂囦歡浜嗭紝榪樺彲浠ュ姞涓婅蔣浠剁敓鎴愮殑log鏂囦歡絳夈?/span></p> <p> <wbr> <wbr> <wbr> 褰撶劧錛屽浜庢爣棰樺簲璇ュ敖閲忓鍔犱竴浜涗俊鎭尯鍒紩璧?span>crash鐨勫師鍥狅紝姣斿灝哻rash鐨勫湴鍧淇℃伅鍔犲埌鏍囬涓紱鍥犱負褰撴瘡澶╂湁鎴愮櫨涓婂崈鐨刢rash姹囨姤涓婃潵錛岄噸澶嶇殑crash鍗犲ぇ澶氭暟錛屾妸鏃墮棿閮借姳鍦ㄥ尯鍒嗗畠浠韓涓婃湁鐐瑰お嫻垂銆傜敱姝ょ湅鏉ワ紝鍓嶉潰鏂規涓彁鍒扮殑StackWalker榪樻槸鏈変簺鐢ㄥ鐨勶紝鎴戜滑鍙互鐢ㄥ畠鏉ョ敓鎴愪竴浜沜rash鐨勬枃瀛楁弿榪頒俊鎭紝鍐欏埌鏍囬鎴栨鏂囦腑鍘匯?/span></p> <p> <wbr> <wbr> <wbr> dump鏂囦歡鐨勫ぇ灝忔槸鍚﹂傚悎浣滀負閭歡鐨勯檮浠跺憿錛熷疄闄呬笂<span>minidump浜х敓鐨勬枃浠朵竴鑸湪鍑燢鍒板嚑鍗並涔嬮棿錛屼綔涓篹mail鐨勯檮浠舵病鏈変換浣曢棶棰樸?/span></p> <p> <wbr> <wbr> <wbr> 鍏充簬鍙戦?span>email鐩稿叧鎶鏈粏鑺傦紝宸茬粡鍦?#8220;<a target="_blank"><span><span>涓虹▼搴忔坊鍔犺嚜鍔ㄥ彂閫丒mail</span><span>鍔熻兘</span></span></a>”</span>鏂囦腑浠嬬粛浜嗭紝澶у鍙互鍙傝冦傚叾瀹烇紝瀵規帴鍙楅偖綆變腑閭歡鐨勫鐞嗚繕鏄緢璐規椂璐瑰姏鐨勶紝澶у鍙互鑰冭檻鍐欎竴浜涜剼鏈皢澶勭悊嫻佺▼鑷姩鍖栵紝鎻愰珮鏁堢巼銆?/p> <p> <wbr> <wbr> <wbr> <strong><span>2</span></strong><strong>銆?span>google breakpad</span></strong></p> <p> <wbr> <wbr> <wbr> google breakpad鏄竴涓紑婧愮殑璺ㄥ鉤鍙?span>crash report緋葷粺錛屽厜浠庡紑婧愬拰璺ㄥ鉤鍙拌繖涓や釜鐗圭偣涓婃潵鐪嬶紝瀹冨氨瓚充互縐扮殑涓婃槸涓涓畬鍠勮屾湁鏁堢殑宸ュ叿浜嗐傚叾瀹烇紝breakpad鍦ㄦ暣涓猚rash report灞傛涓婄粰鍑轟簡涓涓郴緇熺駭鐨勮В鍐蟲柟妗堬紝涔熷氨鏄瀹冨嚑涔庤兘閫傚簲鍚勭杞歡銆佸悇縐嶅鉤鍙扮殑搴旂敤瑕佹眰銆?/span></p> <p> <wbr> <wbr> <wbr> breakpad鐨勬暣浣撴濊礬璺熶笂闈粙緇嶇殑鏂規鏄浉浼肩殑錛屽彧涓嶈繃鏈鍚庢彁浜?span>dump鏂囦歡鐨勬柟寮忔洿鍔犲畬鍠勩傚ぇ瀹舵湁鍏磋叮鍙互鍘誨畠鐨勫畼鏂圭綉鍧鏌ラ槄鐩稿叧璧勬枡錛?a ><span>http://code.google.com/p/google-breakpad/</span></a></span>銆?/p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> ok錛屽叧浜庤皟璇?span>release鍙戝竷紼嬪簭鐨刢rash閿欒緋誨垪鏂囩珷灝卞啓瀹屼簡銆傝繖鍑犵瘒鏂囩珷緇欏嚭鐨勬柟妗堢敱綆鍗曞埌澶嶆潅錛岀敱綆闄嬪埌瀹屽杽錛屽crash璋冭瘯鏈変簡涓涓瘮杈冨叏闈㈢殑鎬葷粨銆傚綋鐒訛紝鍏朵腑娑夊強鍒扮殑姒傚康鍜屾妧鏈繕寰堝錛岄渶瑕佹垜浠幓涓嶆柇瀛︿範鍜岄鎮燂紝涔熷笇鏈涘ぇ瀹惰兘澶熶簰鐩鎬氦嫻併?/span></p> </div> </div></div><img src ="http://www.shnenglu.com/lauer3912/aggbug/159781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lauer3912/" target="_blank">RTY</a> 2011-11-07 21:15 <a href="http://www.shnenglu.com/lauer3912/archive/2011/11/07/159781.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>紼嬪簭鍛樼殑鍏遍福 - 璇匯婂崜鏈夋垚鏁堢殑紼嬪簭鍛樸?/title><link>http://www.shnenglu.com/lauer3912/archive/2011/09/15/155812.html</link><dc:creator>RTY</dc:creator><author>RTY</author><pubDate>Wed, 14 Sep 2011 23:36:00 GMT</pubDate><guid>http://www.shnenglu.com/lauer3912/archive/2011/09/15/155812.html</guid><wfw:comment>http://www.shnenglu.com/lauer3912/comments/155812.html</wfw:comment><comments>http://www.shnenglu.com/lauer3912/archive/2011/09/15/155812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lauer3912/comments/commentRss/155812.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lauer3912/services/trackbacks/155812.html</trackback:ping><description><![CDATA[<span id="hvzpftn" class="Apple-style-span" style="color: #333333; font-family: 寰蔣闆呴粦, verdana, Arial, sans-serif; background-color: #ffffff; "><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">鏈榪戣浜嗐婂崜鏈夋垚鏁堢殑紼嬪簭鍛樸嬶紝鎰熻鏀惰幏棰囧ぇ銆傝繖鏄竴鏈啓緇欑▼搴忓憳鐨勯毦寰楃殑濂戒功銆備功涓ぇ閮芥槸涓浜涙祬鏄劇殑閬撶悊錛屼絾浣滆呭皢榪欎簺涓滆タ鍔犱互鏀墮泦銆佸綊綰熾佹葷粨錛屽茍鏈緇堟垚涔︺備綔鑰呬負浜嗘敹闆嗗悇縐嶆彁楂樻晥鐜囩殑宸ュ叿鍜屾柟娉曪紝涓滃瑗胯蛋錛屽彲璋撹垂浜嗕竴鐣嫤蹇冦?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">鎴戣寰楁涔︾涓閮ㄥ垎鎬葷粨鐨勪竴浜涙硶鍒欓潪甯稿ソ錛屾垜鎻愬彇浜嗕竴涓嬶細<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">娉曞垯錛?nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></h3><h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">1.鍔犻熸硶鍒?/h4><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鍏蟲敞鏈川錛岃岄潪褰㈠紡</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    涓涓簲鐢ㄧ▼搴忓垪琛ㄧ殑鏈夌敤紼嬪害涓庡畠鐨勯暱搴︽垚鍙嶆瘮 <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">紼嬪簭鍛樼殑寰堝鏃墮棿閮芥氮璐瑰湪鎵句笢瑗夸笂</span> <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鍗庤屼笉瀹炵殑涓滆タ涓湅涓嶄腑鐢?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    閿洏杈撳叆鎬繪瘮瀵艱埅蹇?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">棣栭夐敭鐩樿岄潪榧犳爣</span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鍦板潃鏍忔槸Windows璧勬簮綆$悊鍣ㄧ晫闈腑鏈楂樻晥鐨勯儴鍒?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">鑺辯偣鏃墮棿鏉ュ涔犱綘鎵嬭竟鐨勬墍鏈夐殣钘忕殑蹇嵎閿?/span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鐜鍒囨崲浼氭秷鑰楁椂闂?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">鎴愭壒澶嶅埗綺樿創瑕佹瘮鍙嶅澶氭澶嶅埗綺樿創蹇?/span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    蹇樿鍘嗗彶灝辨剰鍛崇潃浣犲緱鍐嶈緭鍏ヤ竴閬?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    宓屽叆鍥懼艦鍖栧伐鍏風殑鍛戒護鎻愮ず絎﹁浣犻奔涓庣唺鎺屽吋寰?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鍦ㄤ笂涓嬫枃涓涔營DE蹇嵎閿紝鑰屼笉瑕佸幓鑳岄暱闀跨殑鍒楄〃</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    褰撲綘絎簩嬈¤緭鍏ヤ竴涓鏉傜粨鏋勬椂錛屽皢瀹冨仛鎴愭ā鏉?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    濡傛灉瑕佸澶氳鏂囨湰鍋氬悓鏍風殑鎿嶄綔錛屽氨搴旇鎵懼嚭鍏朵腑鐨勬ā寮忥紝騫舵妸瀹冭褰曚負涓涓畯</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">涓嶈鎬繪槸閲嶅杈撳叆鐩稿悓鐨勫懡浠?/span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    姣忓ぉ鑺變竴鐐圭偣鏃墮棿鏉ヤ嬌姣忎竴澶╅兘鏇撮珮鏁?nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">2.涓撴敞娉曞垯</h4><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">綺懼姏瓚婇泦涓紝鎬濈淮瓚婄紲瀵?/span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鎺掗櫎騫叉壈錛氶殧紱葷瓥鐣ワ紝鍏蟲帀涓嶉渶瑕佺殑鎻愮ず錛屽垱閫犲畨闈欐椂闂?nbsp; <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">鑽夊爢瓚婂ぇ錛屼粠涓壘鍒頒竴鏍歸拡灝辮秺闅?/span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    涓嶈闂枃浠舵爲錛岃鎼滅儲</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    浣跨敤澶氭樉紺哄櫒</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    铏氭嫙妗岄潰鍙互璁╁師鏈潅涔辨棤绔犵殑涓澶у爢紿楀彛鍙樺緱鏁存磥 <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">3.鑷姩鍖栨硶鍒?/h4><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    涓嶈閲嶆柊鍙戞槑杞瓙</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鐢⊿elenium嫻忚緗戦〉</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    涓嶈嫻垂鏃墮棿鍔ㄦ墜鍘誨仛鍙互琚嚜鍔ㄥ寲鐨勪簨鎯?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鐢╓indows Power Shell鏇夸唬鎵瑰鐞嗘枃浠?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    椹湇Subversion鍛戒護琛?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    浠ュ垱閫犳х殑鏂瑰紡瑙e喅闂錛屾湁鍔╀簬鍦ㄥ皢鏉ヨВ鍐崇被浼肩殑闂</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">鏄惁搴旇鑷姩鍖栫殑鍏抽敭鍦ㄤ簬鎶曡祫鍥炴姤鐜囧拰緙撹В椋庨櫓</span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鐮旂┒鎬х殑宸ヤ綔搴旇鏀懼湪鏃墮棿鐩掗噷鍋?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鍒粰鐗︾墰鍓瘺 <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">4.瑙勮寖鎬ф硶鍒?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></h4><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    瀵逛簬浠諱綍浣犱笉鑷繁鍘繪瀯寤虹殑涓滆タ錛屽彧鍦ㄧ増鏈帶鍒朵腑淇濆瓨涓浠藉壇鏈?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    浣跨敤鏍囧噯鐨勬瀯寤烘湇鍔″櫒</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">閫氳繃澶嶅埗綺樿創鏉ュ鐢ㄦ槸閭伓鐨勶紝涓嶈浣犲鍒剁矘璐寸殑鏄粈涔?/span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    鍒╃敤铏氭嫙騫沖彴浣塊」鐩緷璧栨爣鍑嗗寲</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    涓嶈璁╁璞?- 鍏崇郴鏄犲皠宸ュ叿錛圤/R鏄犲皠鍣級榪濆弽瑙勮寖鍘熷垯 <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    閫氳繃鎵╁睍銆傚紑鏀劇被錛坥pen class錛夛紝鎴栬呴儴鍒嗙被錛坧artial class錛?鏉ヤ負鐢熸垚鐨勪唬鐮佸鍔犺涓?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    濮嬬粓淇濇寔浠g爜鍜屾暟鎹粨鏋勭殑鍚屾</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">榪囨椂鐨勬枃妗f瘮娌℃湁鏂囨。鏇寸碂錛屽洜涓哄畠浼氫富鍔ㄨ瀵間綘</span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    浠諱綍闇瑕佽垂鍔插垱閫犵殑涓滆タ錛岄兘璁╁畠鐨勫垱閫犺呮緗笉鑳?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">鐧芥澘 + 鏁扮爜鐩告満寮鴻繃浠諱綍CASE宸ュ叿</span></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    灝介噺鐢熸垚鎵鏈夋妧鏈枃妗?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    <span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; color: red; ">閲嶅鏄蔣浠跺紑鍙戜腑鏈澶х殑闃誨姏 </span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">宸ュ叿錛?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></h3><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">涔︿腑錛岃繕鎻愬埌浜嗗ぇ閲忕殑鎻愰珮鏁堢巼鐨勫伐鍏鳳紝閮芥槸闈炲父涓嶉敊鐨勩傜浉淇″緢澶氫漢閮芥湁鑷繁鐨勪竴涓垪琛紝涓嬮潰鏄垜鐢佃剳涓繀涓嶅彲灝戠殑鍑犳杞歡錛?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    1. FireFox 鍙婂叾鍚勭被鎻掍歡<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    2. Launchy鍚姩鍔犻熷櫒</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    3. Total Commander</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    4. ClipX澶氶噸鍓垏鏉?/p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    5. EmEditor鏂囨湰緙栬緫鍣?nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    6. Vistual Studio鐨刅A鎻掍歡</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    7. Search And Replace</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    8. Everything</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    9. Miranda IM<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">    10. .... <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">鎰熻Е錛?nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></h3><h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">1. 鎰ゆ掔殑鐚村瓙 <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></h4><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">鍦ㄤ功涓殑絎簩閮ㄥ垎錛屾彁鍒頒簡寰堝瀹炶返鐩稿叧鐨勫唴瀹廣傝鎴戞劅瑙︽渶娣辯殑鏄?#8220;鎰ゆ掔殑鐚村瓙”鐨勬晠浜嬶細</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">“<em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">鏃╁湪20涓栫邯60騫翠唬錛堥偅鏃跺欑瀛﹀浠彲浠ュ仛浠諱綍鐤媯鐨勪簨鎯咃級錛岃涓虹瀛﹀浠繘琛屼簡涓欏瑰疄楠屻備粬浠妸浜斿彧鐚村瓙鍜屼竴鏋舵椿姊斁鍦ㄤ竴闂村眿瀛愰噷錛屽茍鍦ㄥぉ鑺辨澘涓婃寕浜嗕竴涓查钑夈傝繖浜涚尨瀛愬緢蹇氨鎯沖埌瀹冧滑鍙互鐖笂姊瓙鍘誨悆棣欒晧錛屼絾姣忓綋瀹冧滑闈犺繎媧繪鐨勬椂鍊欙紝縐戝瀹朵滑灝辯敤鍐版按嫻告弧鏁翠釜灞嬪瓙銆傛垜鎯充綘鑳界寽鍒頒細鍙戠敓浠涔堬細涓緹ゆ劋鎬掔殑鐚村瓙銆傚緢蹇紝鍐嶆病鏈変竴鍙尨瀛愪細鍘婚潬榪戦偅涓瀛愪簡銆?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></em></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">涔嬪悗錛岀瀛﹀浠皢鍏朵腑涓鍙尨瀛愭浛鎹㈡垚鍙︿竴鍙病鏈夊繊鍙楄繃鍐版按鎶樼(鐨勬柊鐚村瓙銆傝繖鍙柊鐚村瓙鎵鍋氱殑絎竴浠朵簨灝辨槸鐩村閭f灦姊瓙錛屼絾褰撳畠榪欎箞鍋氭椂鍏朵粬鎵鏈夌尨瀛愰兘鐥涙墦瀹冦傚畠涓嶆槑鐧戒負浠涔堬紝浣嗗緢蹇氨瀛︿箹浜嗭細涓嶈鍘婚潬榪戦偅鏋舵瀛愩傜瀛﹀浠愭笎灝嗘渶鍒濈殑閭d簺鐚村瓙閮芥浛鎹㈡垚鏂扮尨瀛愶紝鐩村埌榪欑兢鐚村瓙涓皝閮芥病鏈夎姘存蹈娉¤繃錛岀劧鑰屽畠浠繕鏄細鍘繪敾鍑諱換浣曢潬榪戞瀛愮殑鐚村瓙銆?/em></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">榪欒鏄庝簡浠涔堬紵杞歡欏圭洰涓澶氭儻渚嬩箣鎵浠ュ瓨鍦紝灝卞洜涓?#8221;鎴戜滑涓鐩存槸閭f牱鍋氱殑“銆傛崲鍙ヨ瘽璇達紝鏄洜涓烘劋鎬掔殑鐚村瓙銆?/em>”</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">鎴戜滑灝忕粍鍦ㄥ埗瀹欳++鐩稿叧鐨勪唬鐮佽鑼冩椂灝遍亣鍒拌繃鏃犳暟綾諱技鐨勯棶棰樸傛瘮濡傦紝鍦ㄥ埗瀹氬彉閲忕殑鍛藉悕瑙勮寖鏃訛紝鎴戜滑閽堝鏄惁閲囩敤鍖堢墮鍒╁懡鍚嶆硶浜夎浜嗗緢涔呫傛湁鐨勪漢璁や負錛?鍑犱箮浠ュ墠鐪嬪埌鐨勬墍鏈塁++浠g爜閮介噰鐢ㄤ簡鍖堢墮鍒╁懡鍚嶆硶錛岀敋鑷籌紝寰蔣瀹氫箟鐨勬墍鏈堿PI閮戒嬌鐢ㄤ簡姝ょ被鍛藉悕娉曘傚垰寮濮嬶紝鎴戜篃鏄湁鍚屾牱鐨勭枒鎯戙?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">鍚庢潵錛屾垜浠粡榪囦粩緇嗗垎鏋怌++鍖堢墮鍒╁懡鍚嶆硶鐢辨潵錛屾笎娓愭劅瑙夋垜浠氨鏄偅浜涙劋鎬掔殑鐚村瓙錛岀洸鐩窡浠庡墠浜虹殑鏂瑰紡錛岀己涔忔墦鐮翠紶緇熺殑鍕囨皵銆侰++鏈夌潃鍏剁壒孌婄殑鍘嗗彶鍘熷洜錛屽緢澶氭爣鍑嗕竴鐩存矇娣涓嬫潵騫跺緢灝戞敼鍙樸傛垜浠啀鐪嬬湅鍚庢潵鏂扮敓鐨勯偅浜涚紪紼嬭璦錛孋#, Python…… 閮芥姏寮冧簡鍖堢墮鍒╁懡鍚嶆硶錛屽悓鏃跺啀鐪嬬湅鐜板湪C++鍓嶆部鐨凜++ 0x浠ュ強鐜板湪鍑虹増鐨勪竴浜涗功涓紝涔熸笎娓愭斁寮冧簡瀵瑰寛鐗欏埄鍛藉悕娉曠殑浣跨敤銆傚洜涓虹被鍨嬬殑鎰忎箟鍦ㄥ璞℃ā鍨嬩腑瓚婃潵瓚婂急鍖栥傚洜姝わ紝鏈鍚庢垜浠斁寮冧簡鍖堢墮鍒╁懡鍚嶆硶榪欎釜鑰佸彜钁c?nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">2. 鏁忔嵎寮鍙?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></h4><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">榪欐湰涔﹀甫鏈夊己鐑堢殑ThoughtWorks鑹插僵錛屾晱鎹風殑鎬濇兂璐┛鍏ㄤ功錛屽寘鎷祴璇曢┍鍔ㄨ璁★紝鐧芥澘錛岀粨瀵圭紪紼嬨傝繖涔熻鎴戝鏁忔嵎浜х敓浜嗘洿鍔犲己鐑堢殑鍏磋叮銆?鍏朵腑鏈変竴孌墊祴璇曢┍鍔ㄥ紑鍙慣DD鐨勪竴孌墊晠浜嬶細<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">“<em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">璁板緱絎竴嬈″拰涓浜涘凡緇忎範鎯簬鍗曞厓嫻嬭瘯鐨勫紑鍙戜漢鍛樹竴璧峰姩鎵嬪紑濮嬩慨鏀逛唬鐮佹椂錛屾垜涔熸槸闈炲父绱у紶錛屽洜涓哄ぇ閲忕殑淇敼寰寰浼氱牬鍧忓緢澶氫笢瑗匡紝浣嗕粬浠湅璧鋒潵涓濇娌℃湁鐘硅鮑銆傞愭笎鍦幫紝鎴戜篃鏀句笅蹇冩潵錛屽洜涓烘垜鎱㈡參鍦拌璇嗗埌錛氭湁浜嗘祴璇曠殑淇濊瘉錛屽畬鍏ㄥ彲浠ユ斁蹇冨ぇ鑳嗗湴鍘諱慨鏀逛唬鐮併?/em>” <br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">3. 鏈夎叮鐨勬晠浜?nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></h4><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">涔︿腑榪樻湁涓浜涙湁瓚g殑鏁呬簨錛屾瘮濡備綔鑰呯殑涓涓湅鍙嬪湪鍜屽埆浜虹粨瀵圭紪紼嬫椂錛屼負浜嗗吇鎴愬悓浼翠嬌鐢ㄥ揩鎹烽敭鐨勪範鎯紝姣忓綋鍚屼即鏈嬌鐢ㄥ揩鎹烽敭鏃訛紝浠栭兘浼氳姹傚皢鎿嶄綔鎾ら攢錛岀劧鍚庤姹備嬌鐢ㄥ揩鎹烽敭鍐嶉噸澶嶆搷浣?嬈°傜劧鍚庯紝鍦ㄥ叾鍑剁嫚鐨勭溂紲炰腑錛屽悓浼村緢蹇帉鎻′簡蹇嵎閿?nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /></p><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; color: #000000; ">鎬葷粨錛?/h3><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">榪欐湰涔﹀緢钖勶紝钑磋棌鐨勯亾鐞嗗嵈涓嶅皯錛岀浉淇℃瘡涓榪囧畠鐨勪漢閮戒細浠庝腑鏀惰幏銆傝榪囦箣鍚庯紝鎴戜滑涓嶅簲璇ュ眬闄愪簬涔︿腑鎻愬埌鐨勬煇浜涘皬鎶宸э紝 鎴栨槸涔︿腑鏌愪竴涓粏鑺傦紝姣曠珶錛屾彁渚涙晥鐜囩殑鏂規硶鏈夊緢澶氬緢澶氾紝娉曞垯涔熸湁寰堝寰堝錛屼竴鏈功寰堥毦灝嗗叾絀蜂婦瀹屻傛垜浠簲璇ヤ粠涔︿腑鍚稿彇鍏舵濇兂錛屽茍鍦ㄥ疄闄呭伐浣滃拰瀛︿範涓笉鏂葷粨錛屽仛涓涓湡姝g殑“鍗撴湁鎴愭晥鐨勭▼搴忓憳”錛?/p></span><img src ="http://www.shnenglu.com/lauer3912/aggbug/155812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lauer3912/" target="_blank">RTY</a> 2011-09-15 07:36 <a href="http://www.shnenglu.com/lauer3912/archive/2011/09/15/155812.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Parallel Programming Essentials via the Intel TBBhttp://www.shnenglu.com/lauer3912/archive/2011/09/15/155810.htmlRTYRTYWed, 14 Sep 2011 23:05:00 GMThttp://www.shnenglu.com/lauer3912/archive/2011/09/15/155810.htmlhttp://www.shnenglu.com/lauer3912/comments/155810.htmlhttp://www.shnenglu.com/lauer3912/archive/2011/09/15/155810.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/155810.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/155810.html闃呰鍏ㄦ枃

RTY 2011-09-15 07:05 鍙戣〃璇勮
]]>
Google Test 鏋舵瀯http://www.shnenglu.com/lauer3912/archive/2011/09/15/155807.htmlRTYRTYWed, 14 Sep 2011 22:40:00 GMThttp://www.shnenglu.com/lauer3912/archive/2011/09/15/155807.htmlhttp://www.shnenglu.com/lauer3912/comments/155807.htmlhttp://www.shnenglu.com/lauer3912/archive/2011/09/15/155807.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/155807.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/155807.htmlhttp://code.google.com/p/googletest/

寮曟枃錛?a >http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)(鎬?

鍓嶆鏃墮棿瀛︿範鍜屼簡瑙d簡涓婫oogle鐨勫紑婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test錛岀畝縐癵test錛岄潪甯哥殑涓嶉敊銆?鎴戜滑鍘熸潵浣跨敤鐨勬槸鑷繁瀹炵幇鐨勪竴濂楀崟鍏冩祴璇曟鏋訛紝鍦ㄤ嬌鐢ㄨ繃紼嬩腑錛屽彂鐜拌秺鏉ヨ秺澶氫嬌鐢ㄤ笉渚夸箣澶勶紝鑰岃繖鏍蜂笉渚夸箣澶勶紝gtest鎭版伆寰堝ソ鐨勮В鍐充簡銆?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />

鍏跺疄gtest鏈韓鐨勫疄鐜板茍涓嶅鏉傦紝鎴戜滑瀹屽叏鍙互妯′豢gtest錛屼笉鏂殑瀹屽杽鎴戜滑鐨勬祴璇曟鏋訛紝 浣嗘渶鍚庢垜浠繕鏄喅瀹氫嬌鐢╣test鍙栦唬鎺夊師鏉ョ殑鑷繁鐨勬祴璇曟鏋訛紝鍘熷洜鏄細

1.涓嶆柇瀹屽杽鎴戜滑鐨勬祴璇曟鏋朵箣鍚庡氨浼氬彂瑙夌浉褰撲簬鎶奼test閲嶆柊鍋氫簡涓閬嶏紝铏界劧杞瓙閫犵殑寰堢埥錛屼絾鏄笉鏄繀瑕佺殑銆?/p>

2.浣跨敤gtest鍙互鍏嶅幓緇存姢嫻嬭瘯妗嗘灦鐨勯夯鐑︼紝璁╂垜浠湁鏇村綺懼姏鎶曞叆鍒版渚嬭璁′笂銆?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />

3.gtest鎻愰珮浜嗛潪甯稿畬鍠勭殑鍔熻兘錛屽茍涓旂畝鍗曟槗鐢紝鏋佸ぇ鐨勬彁楂樹簡緙栧啓嫻嬭瘯妗堜緥鐨勬晥鐜囥?/p>

gtest鐨勫畼鏂圭綉绔欐槸錛?/p>

http://code.google.com/p/googletest/

浠庡畼鏂圭殑浣跨敤鏂囨。閲岋紝浣犲嚑涔庡彲浠ヨ幏寰椾綘鎯寵鐨勬墍鏈変笢瑗?nbsp;

http://code.google.com/p/googletest/wiki/GoogleTestPrimer

http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide 

濡傛灉榪樻兂瀵筭test鍐呴儴鎺釜絀剁珶錛屽氨鎶婂畠鐨勪唬鐮佷笅杞戒笅鏉ョ爺絀跺惂錛岃繖灝辨槸寮婧愮殑濂藉錛屽搱錛?nbsp;

瀹樻柟宸茬粡鏈夊姝ゅ畬澶囩殑鏂囨。浜嗭紝涓轟粈涔堟垜榪樿鍐欏憿錛熶竴鏂歸潰鏄嚜宸辮璁扮瑪璁幫紝濂借鎬т笉濡傜儌絎斿ご錛屼互鍚庤嚜宸辨兂鏌ユ煡涓浜涚敤娉曚篃鍙互鐩存帴鍦ㄨ繖閲屾煡鍒幫紝涓鏂歸潰鏄浜庝笉鎯沖幓鐪嬩竴澶у爢鑻辨枃鏂囨。鐨勬湅鍙嬶紝鍦ㄦ垜榪欓噷鍙互蹇熺殑鎵懼埌gtest鐩稿叧鐨勫唴瀹廣?/p>

涓嬮潰鏄緋誨垪鐨勭洰褰曪細

1.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬩竴 - 鍒濊瘑gtest

2.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬩簩 - 鏂█

3.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬩笁 - 浜嬩歡鏈哄埗

4.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬪洓 - 鍙傛暟鍖?/a>

5.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬩簲 - 姝諱骸嫻嬭瘯 

6.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬪叚 - 榪愯鍙傛暟

7.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬩竷 - 娣卞叆瑙f瀽gtest

8.鐜╄漿Google寮婧怌++鍗曞厓嫻嬭瘯妗嗘灦Google Test緋誨垪(gtest)涔嬪叓 - 鎵撻犺嚜宸辯殑鍗曞厓嫻嬭瘯妗嗘灦


棰濆綃囷細

1.gtest涓浣曡煩鍑哄綋鍓嶆祴璇曟渚?/a>

2.緙栧啓浼樼編鐨凣Test嫻嬭瘯妗堜緥

3.gtest 鍙傛暟鍖栨祴璇曚唬鐮佺ず渚?/a> (鍐呭惈瀹屾暣宸ョ▼紺轟緥)

浣滆咃細CoderZh錛?a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #0066aa; border-bottom-width: 0px; border-bottom-style: initial; border-bottom-color: initial; ">CoderZh鐨勬妧鏈崥瀹?- 鍗氬鍥?/a>錛?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />寰崥錛?a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #0066aa; border-bottom-width: 0px; border-bottom-style: initial; border-bottom-color: initial; ">http://t.sina.com.cn/coderzh 
鍑哄錛?a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #0066aa; border-bottom-width: 0px; border-bottom-style: initial; border-bottom-color: initial; ">http://coderzh.cnblogs.com
鏂囩珷鐗堟潈褰掓湰浜烘墍鏈夛紝嬈㈣繋杞澆錛屼絾鏈粡浣滆呭悓鎰忓繀欏諱繚鐣欐孌靛0鏄庯紝涓斿湪鏂囩珷欏甸潰鏄庢樉浣嶇疆緇欏嚭鍘熸枃榪炴帴錛屽惁鍒欎繚鐣欒拷絀舵硶寰嬭矗浠葷殑鏉冨埄銆?/p>




RTY 2011-09-15 06:40 鍙戣〃璇勮
]]>
Const錛孋onst鍑芥暟錛孋onst鍙橀噺錛屽嚱鏁板悗闈㈢殑Consthttp://www.shnenglu.com/lauer3912/archive/2011/07/26/151840.htmlRTYRTYMon, 25 Jul 2011 23:14:00 GMThttp://www.shnenglu.com/lauer3912/archive/2011/07/26/151840.htmlhttp://www.shnenglu.com/lauer3912/comments/151840.htmlhttp://www.shnenglu.com/lauer3912/archive/2011/07/26/151840.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/151840.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/151840.html

鐪嬪埌const 鍏抽敭瀛楋紝C++紼嬪簭鍛橀鍏堟兂鍒扮殑鍙兘鏄痗onst 甯擱噺銆傝繖鍙笉鏄壇濂界殑鏉′歡鍙嶅皠銆傚鏋滃彧鐭ラ亾鐢╟onst 瀹氫箟甯擱噺錛岄偅涔堢浉褰撲簬鎶婄伀鑽粎鐢ㄤ簬鍒朵綔闉偖銆俢onst 鏇村ぇ鐨勯瓍鍔涙槸瀹冨彲浠ヤ慨楗板嚱鏁扮殑鍙傛暟銆佽繑鍥炲鹼紝鐢氳嚦鍑芥暟鐨勫畾涔変綋銆?/p>

const 鏄痗onstant 鐨勭緝鍐欙紝“鎭掑畾涓嶅彉”鐨勬剰鎬濄傝const 淇グ鐨勪笢瑗塊兘鍙楀埌寮哄埗淇濇姢錛屽彲浠ラ闃叉剰澶栫殑鍙樺姩錛岃兘鎻愰珮紼嬪簭鐨勫仴澹с傛墍浠ュ緢澶欳++紼嬪簭璁捐涔︾睄寤鴻錛?#8220;Use const whenever you need”銆?/p>

1.鐢╟onst 淇グ鍑芥暟鐨勫弬鏁?/p>

濡傛灉鍙傛暟浣滆緭鍑虹敤錛屼笉璁哄畠鏄粈涔堟暟鎹被鍨嬶紝涔熶笉璁哄畠閲囩敤“鎸囬拡浼犻?#8221;榪樻槸“寮曠敤浼犻?#8221;錛岄兘涓嶈兘鍔燾onst 淇グ錛屽惁鍒欒鍙傛暟灝嗗け鍘昏緭鍑哄姛鑳姐俢onst 鍙兘淇グ杈撳叆鍙傛暟錛?/p>

濡傛灉杈撳叆鍙傛暟閲囩敤“鎸囬拡浼犻?#8221;錛岄偅涔堝姞const 淇グ鍙互闃叉鎰忓鍦版敼鍔ㄨ鎸囬拡錛岃搗鍒頒繚鎶や綔鐢ㄣ?/strong>

渚嬪StringCopy 鍑芥暟錛?/p>

void StringCopy(char *strDestination, const char *strSource);

鍏朵腑strSource 鏄緭鍏ュ弬鏁幫紝strDestination 鏄緭鍑哄弬鏁般傜粰strSource 鍔犱笂const淇グ鍚庯紝濡傛灉鍑芥暟浣撳唴鐨勮鍙ヨ瘯鍥炬敼鍔?/span>strSource 鐨勫唴瀹癸紝緙栬瘧鍣ㄥ皢鎸囧嚭閿欒銆?/span>

濡傛灉杈撳叆鍙傛暟閲囩敤“鍊間紶閫?#8221;錛岀敱浜庡嚱鏁板皢鑷姩浜х敓涓存椂鍙橀噺鐢ㄤ簬澶嶅埗璇ュ弬鏁幫紝璇ヨ緭鍏ュ弬鏁版湰鏉ュ氨鏃犻渶淇濇姢錛屾墍浠ヤ笉瑕佸姞const 淇グ銆?/p>

渚嬪涓嶈灝嗗嚱鏁皏oid Func1(int x) 鍐欐垚void Func1(const int x)銆傚悓鐞嗕笉瑕佸皢鍑芥暟void Func2(A a) 鍐欐垚void Func2(const A a)銆傚叾涓瑼 涓虹敤鎴瘋嚜瀹氫箟鐨勬暟鎹被鍨嬨?/p>

瀵逛簬闈炲唴閮ㄦ暟鎹被鍨嬬殑鍙傛暟鑰岃█錛岃薄void Func(A a) 榪欐牱澹版槑鐨勫嚱鏁版敞瀹氭晥鐜囨瘮杈冨簳銆傚洜涓哄嚱鏁頒綋鍐呭皢浜х敓A 綾誨瀷鐨勪復鏃跺璞$敤浜庡鍒跺弬鏁癮錛岃屼復鏃跺璞$殑鏋勯犮佸鍒躲佹瀽鏋勮繃紼嬮兘灝嗘秷鑰楁椂闂淬?/p>

涓轟簡鎻愰珮鏁堢巼錛屽彲浠ュ皢鍑芥暟澹版槑鏀逛負void Func(A &a)錛屽洜涓?#8220;寮曠敤浼犻?#8221;浠呭熺敤涓涓嬪弬鏁扮殑鍒悕鑰屽凡錛屼笉闇瑕佷駭鐢熶復鏃跺璞°備絾鏄嚱鏁皏oid Func(A &a) 瀛樺湪涓涓己鐐癸細

“寮曠敤浼犻?#8221;鏈夊彲鑳芥敼鍙樺弬鏁癮錛岃繖鏄垜浠笉鏈熸湜鐨勩傝В鍐寵繖涓棶棰樺緢瀹規槗錛屽姞const淇グ鍗沖彲錛屽洜姝ゅ嚱鏁版渶緇堟垚涓簐oid Func(const A &a)銆?/p>

浠ユ綾繪帹錛屾槸鍚﹀簲灝唙oid Func(int x) 鏀瑰啓涓簐oid Func(const int &x)錛屼互渚挎彁楂樻晥鐜囷紵瀹屽叏娌℃湁蹇呰錛屽洜涓哄唴閮ㄦ暟鎹被鍨嬬殑鍙傛暟涓嶅瓨鍦ㄦ瀯閫犮佹瀽鏋勭殑榪囩▼錛岃屽鍒朵篃闈炲父蹇紝“鍊間紶閫?#8221;鍜?#8220;寮曠敤浼犻?#8221;鐨勬晥鐜囧嚑涔庣浉褰撱?/p>

闂鏄姝ょ殑緙犵壞錛屾垜鍙ソ灝?#8220;const &”淇グ杈撳叆鍙傛暟鐨勭敤娉曟葷粨涓涓嬨?/p>

 

瀵逛簬闈炲唴閮ㄦ暟鎹被鍨嬬殑杈撳叆鍙傛暟錛屽簲璇ュ皢“鍊間紶閫?#8221;鐨勬柟寮忔敼涓?#8220;const 寮曠敤浼犻?#8221;錛岀洰鐨勬槸鎻愰珮鏁堢巼銆備緥濡傚皢void Func(A a) 鏀逛負void Func(const A &a)銆?/p>

 

瀵逛簬鍐呴儴鏁版嵁綾誨瀷鐨勮緭鍏ュ弬鏁幫紝涓嶈灝?#8220;鍊間紶閫?#8221;鐨勬柟寮忔敼涓?#8220;const 寮曠敤浼犻?#8221;銆傚惁鍒欐棦杈句笉鍒版彁楂樻晥鐜囩殑鐩殑錛屽張闄嶄綆浜嗗嚱鏁扮殑鍙悊瑙fс備緥濡倂oid Func(int x) 涓嶅簲璇ユ敼涓簐oid Func(const int &x)銆?/p>

2 鐢╟onst 淇グ鍑芥暟鐨勮繑鍥炲?br />濡傛灉緇欎互“鎸囬拡浼犻?#8221;鏂瑰紡鐨勫嚱鏁拌繑鍥炲煎姞const 淇グ錛岄偅涔堝嚱鏁拌繑鍥炲鹼紙鍗蟲寚閽堬級鐨勫唴瀹逛笉鑳借淇敼錛?strong>璇ヨ繑鍥炲煎彧鑳借璧嬬粰鍔燾onst 淇グ鐨勫悓綾誨瀷鎸囬拡銆備緥濡傚嚱鏁?br />const char * GetString(void);
濡備笅璇彞灝嗗嚭鐜扮紪璇戦敊璇細
char *str = GetString();
姝g‘鐨勭敤娉曟槸
const char *str = GetString();
濡傛灉鍑芥暟榪斿洖鍊奸噰鐢?#8220;鍊間紶閫掓柟寮?#8221;錛岀敱浜庡嚱鏁頒細鎶婅繑鍥炲煎鍒跺埌澶栭儴涓存椂鐨勫瓨鍌ㄥ崟鍏冧腑錛屽姞const 淇グ娌℃湁浠諱綍浠峰箋?br />渚嬪涓嶈鎶婂嚱鏁癷nt GetInt(void) 鍐欐垚const int GetInt(void)銆?br />鍚岀悊涓嶈鎶婂嚱鏁癆 GetA(void) 鍐欐垚const A GetA(void)錛屽叾涓瑼 涓虹敤鎴瘋嚜瀹氫箟鐨勬暟鎹被鍨嬨?br />濡傛灉榪斿洖鍊間笉鏄唴閮ㄦ暟鎹被鍨嬶紝灝嗗嚱鏁癆 GetA(void) 鏀瑰啓涓篶onst A & GetA(void)鐨勭‘鑳芥彁楂樻晥鐜囥備絾姝ゆ椂鍗冧竾鍗冧竾瑕佸皬蹇冿紝涓瀹氳鎼炴竻妤氬嚱鏁扮┒绔熸槸鎯寵繑鍥炰竴涓璞$殑“鎷瘋礉”榪樻槸浠呰繑鍥?#8220;鍒悕”灝卞彲浠ヤ簡錛屽惁鍒欑▼搴忎細鍑洪敊銆?br />鍑芥暟榪斿洖鍊奸噰鐢?#8220;寮曠敤浼犻?#8221;鐨勫満鍚堝茍涓嶅錛岃繖縐嶆柟寮忎竴鑸彧鍑虹幇鍦ㄧ被鐨勮祴鍊煎嚱鏁頒腑錛岀洰鐨勬槸涓轟簡瀹炵幇閾懼紡琛ㄨ揪銆?/p>

渚嬪錛?br />class A
{
A & operate = (const A &other); // 璧嬪煎嚱鏁?br />};
A a, b, c; // a, b, c 涓篈 鐨勫璞?br />
a = b = c; // 姝e父鐨勯摼寮忚祴鍊?br />(a = b) = c; // 涓嶆甯哥殑閾懼紡璧嬪鹼紝浣嗗悎娉?br />濡傛灉灝嗚祴鍊煎嚱鏁扮殑榪斿洖鍊煎姞const 淇グ錛岄偅涔堣榪斿洖鍊肩殑鍐呭涓嶅厑璁歌鏀瑰姩銆備笂渚嬩腑錛岃鍙?a = b = c 浠嶇劧姝g‘錛屼絾鏄鍙?(a = b) = c 鍒欐槸闈炴硶鐨勩?br />3 const 鎴愬憳鍑芥暟
浠諱綍涓嶄細淇敼鏁版嵁鎴愬憳鐨勫嚱鏁伴兘搴旇澹版槑涓篶onst 綾誨瀷銆傚鏋滃湪緙栧啓const 鎴愬憳鍑芥暟鏃訛紝涓嶆厧淇敼浜嗘暟鎹垚鍛橈紝鎴栬呰皟鐢ㄤ簡鍏跺畠闈瀋onst 鎴愬憳鍑芥暟錛岀紪璇戝櫒灝嗘寚鍑洪敊璇紝榪欐棤鐤戜細鎻愰珮紼嬪簭鐨勫仴澹с備互涓嬬▼搴忎腑錛岀被stack 鐨勬垚鍛樺嚱鏁癎etCount 浠呯敤浜庤鏁幫紝浠庨昏緫涓婅GetCount 搴斿綋涓篶onst 鍑芥暟銆傜紪璇戝櫒灝嗘寚鍑篏etCount 鍑芥暟涓殑閿欒銆?br />class Stack
{
public:
void Push(int elem);
int Pop(void);
int GetCount(void) const; // const 鎴愬憳鍑芥暟
private:
int m_num;
int m_data[100];
};
int Stack::GetCount(void) const
{
++ m_num; // 緙栬瘧閿欒錛屼紒鍥句慨鏀規暟鎹垚鍛榤_num
Pop(); // 緙栬瘧閿欒錛屼紒鍥捐皟鐢ㄩ潪const 鍑芥暟
return m_num;
}
const 鎴愬憳鍑芥暟鐨勫0鏄庣湅璧鋒潵鎬殑錛歝onst 鍏抽敭瀛楀彧鑳芥斁鍦ㄥ嚱鏁板0鏄庣殑灝鵑儴錛屽ぇ姒傛槸鍥犱負鍏跺畠鍦版柟閮藉凡緇忚鍗犵敤浜嗐?br />鍏充簬Const鍑芥暟鐨勫嚑鐐硅鍒欙細

a. const瀵硅薄鍙兘璁塊棶const鎴愬憳鍑芥暟,鑰岄潪const瀵硅薄鍙互璁塊棶浠繪剰鐨勬垚鍛樺嚱鏁?鍖呮嫭const鎴愬憳鍑芥暟.
b. const瀵硅薄鐨勬垚鍛樻槸涓嶅彲淇敼鐨?鐒惰宑onst瀵硅薄閫氳繃鎸囬拡緇存姢鐨勫璞″嵈鏄彲浠ヤ慨鏀圭殑.
c. const鎴愬憳鍑芥暟涓嶅彲浠ヤ慨鏀瑰璞$殑鏁版嵁,涓嶇瀵硅薄鏄惁鍏鋒湁const鎬ц川.瀹冨湪緙栬瘧鏃?浠ユ槸鍚︿慨鏀規垚鍛樻暟鎹負渚濇嵁,榪涜媯鏌?
e. 鐒惰屽姞涓妋utable淇グ絎︾殑鏁版嵁鎴愬憳,瀵逛簬浠諱綍鎯呭喌涓嬮氳繃浠諱綍鎵嬫閮藉彲淇敼,鑷劧姝ゆ椂鐨刢onst鎴愬憳鍑芥暟鏄彲浠ヤ慨鏀瑰畠鐨?/p>

RTY 2011-07-26 07:14 鍙戣〃璇勮
]]>
const 鍩烘湰鐢ㄦ硶璇存槑錛岃娉ㄦ剰錛?/title><link>http://www.shnenglu.com/lauer3912/archive/2011/07/26/151839.html</link><dc:creator>RTY</dc:creator><author>RTY</author><pubDate>Mon, 25 Jul 2011 23:13:00 GMT</pubDate><guid>http://www.shnenglu.com/lauer3912/archive/2011/07/26/151839.html</guid><wfw:comment>http://www.shnenglu.com/lauer3912/comments/151839.html</wfw:comment><comments>http://www.shnenglu.com/lauer3912/archive/2011/07/26/151839.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lauer3912/comments/commentRss/151839.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lauer3912/services/trackbacks/151839.html</trackback:ping><description><![CDATA[<span id="hvzpftn" class="Apple-style-span" style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; ">const綾誨瀷瀹氫箟錛氭寚鏄庡彉閲忔垨瀵硅薄鐨勫兼槸涓嶈兘琚洿鏂?寮曞叆鐩殑鏄負浜嗗彇浠i緙栬瘧鎸囦護 <br /><br />**************甯擱噺蹇呴』琚垵濮嬪寲*************************<br /><br />cons鐨勪綔鐢?br />   錛?錛夊彲浠ュ畾涔塩onst甯擱噺         渚嬪錛?br />             const int Max=100;<br />             int Array[Max];        <br />   錛?錛変究浜庤繘琛岀被鍨嬫鏌?nbsp;           渚嬪錛?br />             void f(const int i) { .........}<br />        緙栬瘧鍣ㄥ氨浼氱煡閬搃鏄竴涓父閲忥紝涓嶅厑璁鎬慨鏀癸紱<br />   錛?錛夊彲浠ヤ繚鎶よ淇グ鐨勪笢瑗匡紝闃叉鎰忓鐨勪慨鏀癸紝澧炲己紼嬪簭鐨勫仴澹с?br />        榪樻槸涓婇潰鐨勪緥瀛愶紝濡傛灉鍦ㄥ嚱鏁頒綋鍐呬慨鏀逛簡i錛岀紪璇戝櫒灝變細鎶ラ敊錛?br />        渚嬪錛?nbsp;<br />             void f(const int i) { i=10;//error! }<br />    (5) 涓哄嚱鏁伴噸杞芥彁渚涗簡涓涓弬鑰冦?br />         class A<br />         {<br />           ......<br />           void f(int i)       {......} file://涓涓嚱鏁?br />           void f(int i) const {......} file://涓婁竴涓嚱鏁扮殑閲嶈澆<br />            ......<br />          };<br />     (6) 鍙互鑺傜渷絀洪棿錛岄伩鍏嶄笉蹇呰鐨勫唴瀛樺垎閰嶃?br />         渚嬪錛?br />              #define PI 3.14159         file://甯擱噺瀹?br />              const doulbe  Pi=3.14159;  file://姝ゆ椂騫舵湭灝哖i鏀懼叆ROM涓?br />              ......<br />              double i=Pi;               file://姝ゆ椂涓篜i鍒嗛厤鍐呭瓨錛屼互鍚庝笉鍐嶅垎閰嶏紒<br />              double I=PI;               file://緙栬瘧鏈熼棿榪涜瀹忔浛鎹紝鍒嗛厤鍐呭瓨<br />              double j=Pi;               file://娌℃湁鍐呭瓨鍒嗛厤<br />              double J=PI;               file://鍐嶈繘琛屽畯鏇挎崲錛屽張涓嬈″垎閰嶅唴瀛橈紒<br />         const瀹氫箟甯擱噺浠庢眹緙栫殑瑙掑害鏉ョ湅錛屽彧鏄粰鍑轟簡瀵瑰簲鐨勫唴瀛樺湴鍧錛岃屼笉鏄薄#define涓鏍風粰鍑虹殑鏄珛鍗蟲暟錛屾墍浠ワ紝const瀹氫箟鐨勫父閲忓湪紼嬪簭榪愯榪囩▼涓彧鏈変竴浠芥嫹璐濓紝鑰?define瀹氫箟鐨勫父閲忓湪鍐呭瓨涓湁鑻ュ共涓嫹璐濄?br />     錛?錛?nbsp;鎻愰珮浜嗘晥鐜囥?br />           緙栬瘧鍣ㄩ氬父涓嶄負鏅歝onst甯擱噺鍒嗛厤瀛樺偍絀洪棿錛岃屾槸灝嗗畠浠繚瀛樺湪絎﹀彿琛ㄤ腑錛岃繖浣垮緱瀹冩垚涓轟竴涓紪璇戞湡闂寸殑甯擱噺錛屾病鏈変簡瀛樺偍涓庤鍐呭瓨鐨勬搷浣滐紝浣垮緱瀹冪殑鏁堢巼涔熷緢楂樸?br /><br />浣跨敤const<br />   錛?錛変慨楗頒竴鑸父閲?甯告暟緇勶紝甯稿璞?br />銆銆 淇グ絎onst鍙互鐢ㄥ湪綾誨瀷璇存槑絎﹀墠錛屼篃鍙互鐢ㄥ湪綾誨瀷璇存槑絎﹀悗銆?nbsp;     渚嬪錛?nbsp;  <br />           int const x=2;銆銆鎴栥銆const int x=2;<br /><br />銆銆     int const a[5]={1, 2, 3, 4, 5};    鎴?nbsp; const int a[5]={1, 2, 3, 4, 5};<br /><br />           class A;銆     const A a;  鎴?nbsp;    A const a;<br />銆銆   <br />   錛?錛変慨楗版寚閽?br />        const int *A;   鎴?nbsp; int const *A; //const淇グ鎸囧悜鐨勫璞★紝A鍙彉錛孉鎸囧悜鐨勫璞′笉鍙彉<br />        int *const A; 銆            //const淇グ鎸囬拡A錛?nbsp;    A涓嶅彲鍙橈紝A鎸囧悜鐨勫璞″彲鍙?nbsp;<br />        const int *const A;      //鎸囬拡A鍜孉鎸囧悜鐨勫璞¢兘涓嶅彲鍙?br />   錛?錛変慨楗板紩鐢?br /> 銆銆     const double & v;      璇ュ紩鐢ㄦ墍寮曠敤鐨勫璞′笉鑳借鏇存柊<br />銆錛?錛変慨楗板嚱鏁扮殑榪斿洖鍊鹼細<br />        const淇グ絎︿篃鍙互淇グ鍑芥暟鐨勮繑鍥炲鹼紝鏄繑鍥炲間笉鍙鏀瑰彉錛屾牸寮忓涓嬶細<br />            const int Fun1(); <br />            const MyClass Fun2();<br />   錛?錛変慨楗扮被鐨勬垚鍛樺嚱鏁幫細<br />        const淇グ絎︿篃鍙互淇グ綾葷殑鎴愬憳鍑芥暟錛屾牸寮忓涓嬶細<br />            class ClassName <br />     {<br />             public:<br />            銆    銆int Fun() const;<br />            銆       .....<br />             }錛?br />        榪欐牱錛屽湪璋冪敤鍑芥暟Fun鏃跺氨涓嶈兘淇敼綾婚噷闈㈢殑鏁版嵁 <br />    錛?錛夊湪鍙︿竴榪炴帴鏂囦歡涓紩鐢╟onst甯擱噺<br />         extern const int i;     //姝g‘鐨勫紩鐢?br />         extern const int j=10;  //閿欒錛佸父閲忎笉鍙互琚啀嬈¤祴鍊?br />   <br /><br /><br />*******************鏀懼湪綾誨唴閮ㄧ殑甯擱噺鏈変粈涔堥檺鍒訛紵<br />  <br />        class A<br />        {<br />         private:<br />           const int c3 = 7;               // err<br />           static int c4 = 7;               // err<br />           static const float c5 = 7;  // err<br />          ......<br />  };<br /> 鍒濆鍖栫被鍐呴儴鐨勫父閲?br />        1 鍒濆鍖栧垪琛細<br />         class A<br />         {<br />          public:<br />                A(int i=0):test(i) {}<br />          private:<br />                const int i;<br />          }錛?br />         2 澶栭儴鍒濆鍖栵紝渚嬪錛?br />         class A<br />         {<br />          public:<br />                A() {}<br />          private:<br />                static const int i;  <br />          }錛?br />          const int A::i=3; </span><img src ="http://www.shnenglu.com/lauer3912/aggbug/151839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lauer3912/" target="_blank">RTY</a> 2011-07-26 07:13 <a href="http://www.shnenglu.com/lauer3912/archive/2011/07/26/151839.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://yys4.com" target="_blank">男人的天堂亚洲</a>| <a href="http://simextec.com" target="_blank">久久久久久久综合狠狠综合</a>| <a href="http://xiaobi13.com" target="_blank">亚洲高清电影</a>| <a href="http://dkmcjc.com" target="_blank">欧美精品在线播放</a>| <a href="http://123hiba.com" target="_blank">中文一区二区</a>| <a href="http://hy1598.com" target="_blank">欧美一区二区国产</a>| <a href="http://ddixx.com" target="_blank">在线日本成人</a>| <a href="http://66688811.com" target="_blank">av成人黄色</a>| <a href="http://zhaosaofu.com" target="_blank">国产色爱av资源综合区</a>| <a href="http://www44448.com" target="_blank">麻豆精品在线播放</a>| <a href="http://pp88qq.com" target="_blank">欧美国产精品va在线观看</a>| <a href="http://jm-comic3.com" target="_blank">亚洲制服丝袜在线</a>| <a href="http://6399128.com" target="_blank">久久精品国产欧美亚洲人人爽</a>| <a href="http://jgj230230.com" target="_blank">亚洲国产成人av</a>| <a href="http://958997.com" target="_blank">99精品免费网</a>| <a href="http://www-8438.com" target="_blank">精品成人一区</a>| <a href="http://22abb.com" target="_blank">99re66热这里只有精品4</a>| <a href="http://www33444.com" target="_blank">国产精品美女久久久久久久</a>| <a href="http://coerverbeijing.com" target="_blank">久久久国产精品一区二区中文</a>| <a href="http://szzzzzzz.com" target="_blank">久久久人人人</a>| <a href="http://961318.com" target="_blank">亚洲一区二区欧美</a>| <a href="http://1zz8903.com" target="_blank">久久久久免费</a>| <a href="http://wtoykd.com" target="_blank">亚洲欧美精品</a>| <a href="http://3344568.com" target="_blank">亚洲乱码国产乱码精品精可以看 </a>| <a href="http://360695.com" target="_blank">亚洲伊人久久综合</a>| <a href="http://www3344xz.com" target="_blank">午夜精品久久久</a>| <a href="http://8x1080x.com" target="_blank">亚洲精品乱码久久久久久日本蜜臀 </a>| <a href="http://sxxawef.com" target="_blank">欧美人与禽猛交乱配视频</a>| <a href="http://zzzz80.com" target="_blank">性色av一区二区三区在线观看</a>| <a href="http://44o77.com" target="_blank">国产一区在线免费观看</a>| <a href="http://556995.com" target="_blank">一区二区三区国产</a>| <a href="http://fsxinruiph.com" target="_blank">另类图片综合电影</a>| <a href="http://xiehaihua.com" target="_blank">欧美日韩精品久久久</a>| <a href="http://xhtd688.com" target="_blank">欧美在线一级视频</a>| <a href="http://naturalgiftfashion.com" target="_blank">欧美成人午夜激情在线</a>| <a href="http://vvvv81.com" target="_blank">欧美一区二区三区在线看 </a>| <a href="http://yw3329.com" target="_blank">亚洲狼人综合</a>| <a href="http://772ss.com" target="_blank">激情亚洲成人</a>| <a href="http://cp88966.com" target="_blank">亚洲伊人久久综合</a>| <a href="http://www23009.com" target="_blank">日韩一二三区视频</a>| <a href="http://aass22.com" target="_blank">久久偷看各类wc女厕嘘嘘偷窃</a>| <a href="http://70909g.com" target="_blank">亚洲一区精品电影</a>| <a href="http://628155.com" target="_blank">欧美精品18videos性欧美</a>| <a href="http://kk553.com" target="_blank">久久久久久香蕉网</a>| <a href="http://qqszdq.com" target="_blank">国产精品中文在线</a>| <a href="http://649929.com" target="_blank">99精品国产热久久91蜜凸</a>| <a href="http://bgflee.com" target="_blank">亚洲欧洲精品一区二区三区不卡</a>| <a href="http://xxav2121.com" target="_blank">亚洲免费小视频</a>| <a href="http://042225.com" target="_blank">亚洲香蕉视频</a>| <a href="http://qdzhudai.com" target="_blank">欧美日韩视频在线一区二区</a>| <a href="http://yyy922.com" target="_blank">欧美国产日韩在线</a>| <a href="http://saohu79.com" target="_blank">韩国在线视频一区</a>| <a href="http://4915w.com" target="_blank">欧美专区在线</a>| <a href="http://lutube666.com" target="_blank">久久九九精品99国产精品</a>| <a href="http://my736.com" target="_blank">国产精品一区免费视频</a>| <a href="http://changjiucf.com" target="_blank">在线天堂一区av电影</a>| <a href="http://kk1xx-com.com" target="_blank">9人人澡人人爽人人精品</a>| <a href="http://avjj80.com" target="_blank">欧美a一区二区</a>| <a href="http://zhengnuoxin.com" target="_blank">亚洲精品午夜精品</a>| <a href="http://zhengnuoxin.com" target="_blank">亚洲第一区色</a>| <a href="http://609t.com" target="_blank">欧美专区亚洲专区</a>| <a href="http://77777kkk.com" target="_blank">亚洲精品免费观看</a>| <a href="http://www-76577c.com" target="_blank">久久综合久久综合九色</a>| <a href="http://zgztby.com" target="_blank">久久九九国产精品</a>| <a href="http://dzyhjx.com" target="_blank">一区二区三区在线视频播放</a>| <a href="http://mide776.com" target="_blank">欧美尤物一区</a>| <a href="http://chuangke168.com" target="_blank">麻豆成人综合网</a>| <a href="http://69xxx6.com" target="_blank">亚洲国产精品国自产拍av秋霞</a>| <a href="http://s3yx.com" target="_blank">欧美自拍偷拍午夜视频</a>| <a href="http://www-37277.com" target="_blank">久久亚洲国产成人</a>| <a href="http://qiezi2vip.com" target="_blank">黄色影院成人</a>| <a href="http://www11111111.com" target="_blank">免费成人高清在线视频</a>| <a href="http://jizz16.com" target="_blank">亚洲人人精品</a>| <a href="http://scqike.com" target="_blank">亚洲在线观看免费视频</a>| <a href="http://www30bxbx.com" target="_blank">国产精品久久久久影院亚瑟</a>| <a href="http://9658888.com" target="_blank">亚洲综合国产</a>| <a href="http://www-444454.com" target="_blank">浪潮色综合久久天堂</a>| <a href="http://994745.com" target="_blank">亚洲国语精品自产拍在线观看</a>| <a href="http://456888com.com" target="_blank">久久这里只精品最新地址</a>| <a href="http://anxingou365.com" target="_blank">亚洲高清色综合</a>| <a href="http://649929.com" target="_blank">欧美黄色日本</a>| <a href="http://689658.com" target="_blank">99热在这里有精品免费</a>| <a href="http://muwendada.com" target="_blank">午夜视频在线观看一区二区三区</a>| <a href="http://zj-jufeng.com" target="_blank">国产精品制服诱惑</a>| <a href="http://89wbw.com" target="_blank">久久免费视频网</a>| <a href="http://x946.com" target="_blank">亚洲日本中文字幕免费在线不卡</a>| <a href="http://6399128.com" target="_blank">亚洲四色影视在线观看</a>| <a href="http://hnspygxjscyfwzx.com" target="_blank">国产农村妇女精品一区二区</a>| <a href="http://hhbz518.com" target="_blank">久久久久久久国产</a>| <a href="http://4448884.com" target="_blank">日韩一区二区免费看</a>| <a href="http://henhenai1.com" target="_blank">久久成人久久爱</a>| <a href="http://6688zf.com" target="_blank">日韩视频在线一区二区</a>| <a href="http://www-787333.com" target="_blank">国产麻豆精品在线观看</a>| <a href="http://yanuoxun.com" target="_blank">开心色5月久久精品</a>| <a href="http://xiaobi13.com" target="_blank">夜夜精品视频</a>| <a href="http://6u6uuu666.com" target="_blank">麻豆精品传媒视频</a>| <a href="http://9906w.com" target="_blank">亚洲视频一区在线观看</a>| <a href="http://www-24333.com" target="_blank">国精产品99永久一区一区</a>| <a href="http://www47067.com" target="_blank">嫩草影视亚洲</a>| <a href="http://srojsy.com" target="_blank">亚洲欧美中文另类</a>| <a href="http://8888590.com" target="_blank">亚洲激情国产</a>| <a href="http://7171152.com" target="_blank">久久精品中文字幕一区二区三区</a>| <a href="http://wwwmm131.com" target="_blank">亚洲欧洲日本mm</a>| <a href="http://www369cf.com" target="_blank">国产日产欧产精品推荐色 </a>| <a href="http://www123720a.com" target="_blank">亚洲电影在线看</a>| <a href="http://080973.com" target="_blank">亚洲免费一级电影</a>| <a href="http://zzmzit.com" target="_blank">亚洲国产精品v</a>| <a href="http://wwwbbb888999.com" target="_blank">国产精品免费区二区三区观看</a>| <a href="http://xjj733.com" target="_blank">久久精品国产清自在天天线 </a>| <a href="http://llyx888.com" target="_blank">亚洲大片免费看</a>| <a href="http://959425.com" target="_blank">午夜视频一区二区</a>| <a href="http://xshgwy.com" target="_blank">亚洲裸体俱乐部裸体舞表演av</a>| <a href="http://jiyixitong.com" target="_blank">国产精品免费网站在线观看</a>| <a href="http://javdb04.com" target="_blank">免费成人小视频</a>| <a href="http://free18teen.com" target="_blank">午夜激情一区</a>| <a href="http://www-77537.com" target="_blank">一区二区三区视频观看</a>| <a href="http://785448.com" target="_blank">亚洲成在人线av</a>| <a href="http://7467tom.com" target="_blank">久久网站免费</a>| <a href="http://8090567.com" target="_blank">性色av一区二区三区</a>| <a href="http://56myf.com" target="_blank">亚洲午夜羞羞片</a>| <a href="http://cancerrxa.com" target="_blank">亚洲精品乱码久久久久久蜜桃麻豆</a>| <a href="http://5gn4y.com" target="_blank">国语对白精品一区二区</a>| <a href="http://xkm663y.com" target="_blank">国产精品毛片大码女人</a>| <a href="http://s0247.com" target="_blank">欧美日韩亚洲另类</a>| <a href="http://hg4958.com" target="_blank">欧美精品日韩</a>| <a href="http://maomi54.com" target="_blank">免费亚洲电影</a>| <a href="http://ww323.com" target="_blank">美女尤物久久精品</a>| <a href="http://zgztby.com" target="_blank">久久久久久9</a>| <a href="http://emu160.com" target="_blank">欧美在线观看一区二区</a>| <a href="http://alex-bruni.com" target="_blank">亚洲综合不卡</a>| <a href="http://551692.com" target="_blank">亚洲欧美一区二区精品久久久</a>| <a href="http://376524.com" target="_blank">一本色道久久综合亚洲91</a>| <a href="http://cl6m.com" target="_blank">亚洲欧洲日产国产网站</a>| <a href="http://xxx6688.com" target="_blank">亚洲国产精品日韩</a>| <a href="http://0359222.com" target="_blank">欧美激情一区二区三区在线 </a>| <a href="http://topjavhd.com" target="_blank">亚洲免费视频中文字幕</a>| <a href="http://shnenglu.com" target="_blank">日韩视频一区二区三区在线播放免费观看 </a>| <a href="http://521mu.com" target="_blank">欧美高清视频</a>| <a href="http://baidubf.com" target="_blank">你懂的成人av</a>| <a href="http://99cheats.com" target="_blank">欧美激情视频在线播放</a>| <a href="http://choaoxing.com" target="_blank">欧美成人午夜视频</a>| <a href="http://huxiu123.com" target="_blank">欧美高清在线播放</a>| <a href="http://559dd.com" target="_blank">欧美精品久久久久久久</a>| <a href="http://www993997.com" target="_blank">蘑菇福利视频一区播放</a>| <a href="http://www77711.com" target="_blank">欧美 日韩 国产一区二区在线视频 </a>| <a href="http://9797690.com" target="_blank">久久国产色av</a>| <a href="http://winkwink333.com" target="_blank">久久精品观看</a>| <a href="http://778hao.com" target="_blank">久久免费黄色</a>| <a href="http://03qt.com" target="_blank">欧美高清一区</a>| <a href="http://fanwenok.com" target="_blank">欧美亚州一区二区三区 </a>| <a href="http://holotu.com" target="_blank">国产精品国产三级国产aⅴ入口</a>| <a href="http://www-136hk.com" target="_blank">欧美日韩免费</a>| <a href="http://haose23.com" target="_blank">国产精品第一页第二页第三页</a>| <a href="http://by3799.com" target="_blank">国产精品久久久久久久7电影 </a>| <a href="http://holotu.com" target="_blank">国产精品爱啪在线线免费观看 </a>| <a href="http://036762.com" target="_blank">欧美国产精品人人做人人爱</a>| <a href="http://2312138.com" target="_blank">欧美黄色成人网</a>| <a href="http://57sa.com" target="_blank">国产精品国产成人国产三级</a>| <a href="http://huayoue.com" target="_blank">国产免费成人在线视频</a>| <a href="http://yngtxny.com" target="_blank">国产一区二区主播在线</a>| <a href="http://whdzjc.com" target="_blank">亚洲国产美女</a>| <a href="http://huokemima.com" target="_blank">在线亚洲欧美</a>| <a href="http://ahhccz.com" target="_blank">欧美一区亚洲</a>| <a href="http://csmgxun.com" target="_blank">欧美韩日一区二区三区</a>| <a href="http://jsydjxgs.com" target="_blank">亚洲三级免费电影</a>| <a href="http://xmzszx.com" target="_blank">亚洲欧美日韩天堂</a>| <a href="http://1235656.com" target="_blank">久久五月激情</a>| <a href="http://tristooges.com" target="_blank">欧美日韩直播</a>| <a href="http://lysyfls.com" target="_blank">一区二区亚洲欧洲国产日韩</a>| <a href="http://maokk88.com" target="_blank">最新国产成人av网站网址麻豆</a>| <a href="http://jiucao8.com" target="_blank">亚洲桃色在线一区</a>| <a href="http://mfgun.com" target="_blank">久久一区精品</a>| <a href="http://77xyc77.com" target="_blank">亚洲人成小说网站色在线</a>| <a href="http://duoying668.com" target="_blank">中日韩男男gay无套</a>| <a href="http://xkm663y.com" target="_blank">久久精品亚洲一区</a>| <a href="http://18p2.com" target="_blank">欧美日韩成人一区二区</a>| <a href="http://wawabt.com" target="_blank">国产欧美日韩另类一区</a>| <a href="http://b1768.com" target="_blank">亚洲国内在线</a>| <a href="http://k37b.com" target="_blank">久久久久九九九</a>| <a href="http://www-33tt.com" target="_blank">亚洲激情网站</a>| <a href="http://ridenimbus.com" target="_blank">欧美伊人久久</a>| <a href="http://jav1111.com" target="_blank">欧美日韩中国免费专区在线看</a>| <a href="http://coerverbeijing.com" target="_blank">韩日欧美一区二区三区</a>| <a href="http://123yongjiu.com" target="_blank">一二三区精品福利视频</a>| <a href="http://junhuatesu.com" target="_blank">久久综合九色99</a>| <a href="http://www7495.com" target="_blank">这里只有精品视频在线</a>| <a href="http://qdpetlove.com" target="_blank">毛片一区二区</a>| <a href="http://yahuake.com" target="_blank">国产视频久久久久久久</a>| <a href="http://220fuke.com" target="_blank">妖精视频成人观看www</a>| <a href="http://1177898.com" target="_blank">久久夜色精品亚洲噜噜国产mv</a>| <a href="http://6133c.com" target="_blank">99ri日韩精品视频</a>| <a href="http://1zz8903.com" target="_blank">猛干欧美女孩</a>| <a href="http://jlkcjz.com" target="_blank">国产一区二区三区黄</a>| <a href="http://041935.com" target="_blank">亚洲图片自拍偷拍</a>| <a href="http://wy77777.com" target="_blank">亚洲福利精品</a>| <a href="http://www-222kkk.com" target="_blank">久久久久久成人</a>| <a href="http://7269003.com" target="_blank">国产欧美欧美</a>| <a href="http://yy0754.com" target="_blank">亚洲欧美中文在线视频</a>| <a href="http://mauhorng.com" target="_blank">最新国产成人在线观看</a>| <a href="http://507139.com" target="_blank">久久亚洲精品一区二区</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>