日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VS2008調(diào)試技巧收集備用

 junleo 2010-07-25

VS2005調(diào)試技巧集合

http://blog.csdn.net/rainylin/archive/2007/09/06/1775125.aspx

下面有從淺入深的6個(gè)問題,您可以嘗試回答一下

  1. 一個(gè)如下的語句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什么都寫在一行,你怎么在j=5前面插入斷點(diǎn)
  2. 在一個(gè)1000次的循環(huán)體內(nèi)部設(shè)置斷點(diǎn),你希望當(dāng)循環(huán)進(jìn)行到900次后中斷,怎么才能做到呢?
  3. 你有一個(gè)表達(dá)式在上面循環(huán)的某一次發(fā)生了變化,你想知道是哪一次,在哪個(gè)地方,怎么才能做到?
  4. 你希望你的斷點(diǎn)在被命中100次后,每命中三次中斷一次,比如第103,第106,第109怎樣做?
  5. 你有在調(diào)試一個(gè)服務(wù)程序,希望在其內(nèi)部打上了斷點(diǎn),可是,由于這是一個(gè)公用的服務(wù)你不希望其他訪問這個(gè)服務(wù)的程序被你的調(diào)試所干擾,你想 怎么辦?
  6. 怎樣知道2個(gè)斷點(diǎn)中斷的時(shí)間間隔

問題1,2

  1. 一個(gè)如下的語句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什么都寫在一行,你怎么在j=5前面插入斷點(diǎn)
  2. 在一個(gè)1000次的循環(huán)體內(nèi)部設(shè)置斷點(diǎn),你希望當(dāng)循環(huán)進(jìn)行到900次后中斷,怎么才能做到呢?

這兩個(gè)問題最簡單,我在一個(gè)例子里說明

例如如下循環(huán)

for(int i=0;i<1000;i++){doSomeThing......}

在循環(huán)的大括號(hào)上單擊右鍵,插入斷點(diǎn),用這個(gè)方法,可以對(duì)付那些喜歡把語句寫在一行上的家 伙,其實(shí),隨著.Net3.5中Linq的出現(xiàn),我們肯定也會(huì)經(jīng)常在在一行上寫復(fù)雜的表達(dá)式,這個(gè)時(shí)候用這種插入方法會(huì)比較管用

ok,現(xiàn)在我們來編輯這個(gè)斷點(diǎn)的條件,在斷點(diǎn)上右鍵單擊,選擇如圖菜單項(xiàng)

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

在彈出的窗口中可以設(shè)置斷點(diǎn)命中的條件i==900

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

注意我是在調(diào)試C#代碼,默認(rèn)的條件語句語法是C#,如果你想切換,那就需要用Ctrl- B,來插入斷點(diǎn),并在彈出窗口中選擇語言

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

通過這樣設(shè)置條件斷點(diǎn),我們就可以解決我們的問題1,2了

 

問題3

你有一個(gè)表達(dá)式在上面循環(huán)的某一次發(fā)生了變化,你想知道是哪一次,在哪個(gè)地方,怎么才能做到?

同樣通過設(shè)置條件斷點(diǎn)我們還可以解決我們的問題3,對(duì)表達(dá)式變化的跟蹤

string user="yizhu2000"

for(int i=0;i<10000;i++){

DoSomething1()

.......

DoSomethingN()

}

當(dāng)循環(huán)執(zhí)行完畢時(shí)我們發(fā)現(xiàn)user變成了"smart_boy",你不知道這個(gè)值是在第幾次 循環(huán)的時(shí)候變化的,那么你是不是會(huì)選擇打上斷點(diǎn),一次一次中斷,來查看呢?當(dāng)然不用

在循環(huán)體結(jié)束的位置我們設(shè)置一個(gè)斷點(diǎn),打開條件編輯窗口(打開方法同上),設(shè)置表達(dá)式為 user,勾選下面的HasChanged,也就是說,你告訴斷點(diǎn),當(dāng)user的值發(fā)生變化時(shí)才觸發(fā)

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

(注意:第一次執(zhí)行到斷點(diǎn)的時(shí)候,程序一定會(huì)中斷,并計(jì)算這時(shí)表達(dá)式的值,所以,所謂發(fā)生變 化,指的是以后執(zhí)行到斷點(diǎn)是表達(dá)式的值和第一次執(zhí)行到斷點(diǎn)時(shí)表達(dá)式的值的比較)

問題4

你希望你的斷點(diǎn)在被命中100次后,每命中三次中斷一次,比如第103,第106,第109怎樣做?

如何讓斷點(diǎn)在指定的命中次數(shù)或者大于某個(gè)次數(shù)時(shí)觸發(fā)呢?方法是設(shè)定幾個(gè)斷點(diǎn)的 HitCount,右鍵單擊斷點(diǎn),在彈出菜單中選擇Hit Count,會(huì)彈出如下窗口

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

在"when the break point is hit"下拉列表里,我們可以看到四個(gè)選項(xiàng)

break always:總是中斷

break when the hit count is equal to:等于某次數(shù)時(shí)中斷

beak when the hit count is a multpile of:當(dāng)次數(shù)是某數(shù)的倍數(shù)時(shí)中斷

break when the hit count is greater than or equal to:當(dāng)大于等于某數(shù)時(shí)中斷

問題5

你有在調(diào)試一個(gè)服務(wù)程序,希望在其內(nèi)部打上了斷點(diǎn),可是,由于這是一個(gè)公用的服務(wù)你不希望其他訪問這個(gè)服務(wù)的程序被你的調(diào)試所干擾,你想 怎么辦?

前面4個(gè)問題都已經(jīng)解決了,第5個(gè)問題的解決方法是利用斷點(diǎn)的Filter功能,比如我希望 斷點(diǎn)只有被機(jī)器名為yizhu的機(jī)器訪問才能觸發(fā),我可以這樣設(shè)置

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

當(dāng)其他機(jī)器訪問程序的時(shí)候,斷點(diǎn)將不會(huì)觸發(fā),這樣做的優(yōu)點(diǎn)是通過設(shè)置機(jī)器名,我們可以讓其他 機(jī)器訪問的時(shí)候感覺不到斷點(diǎn)的存在,除此之外我們可以設(shè) 置機(jī)器名,進(jìn)程號(hào),進(jìn)程名,線程號(hào),線程名作為filter,而且還可以把他們組合起來,比如我希望通過當(dāng)機(jī)器yizhu的dllhost進(jìn)程調(diào)用時(shí)才觸 發(fā),那么問題就可以設(shè)置為MachineName="yizhu"&ProcessName="dllhost"

問題6  怎樣知道2個(gè)斷點(diǎn)中斷的時(shí)間間隔

現(xiàn)在我們來解決第6個(gè)問題:

在程序性能調(diào)試的時(shí)候,我們經(jīng)常需要知道某段代碼的執(zhí)行效率,一般來說,我們可以在程序中加 入時(shí)間點(diǎn),通過時(shí)間點(diǎn)相減來取得時(shí)間間隔,這種方法有個(gè) 顯而易見的缺點(diǎn)就是需要修改程序,想要不修改程序,就需要借助一些工具,那么有沒有什么方法可以聲明式的插入時(shí)間點(diǎn),并計(jì)算值呢?其實(shí)斷點(diǎn)完全可以做到

在給出方法前,我們來看看斷點(diǎn)的另外一個(gè)設(shè)置項(xiàng),When Hit,這個(gè)選項(xiàng)可以[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子讓我們在命中斷點(diǎn)后做一些事情,包括輸出一 些內(nèi)容,或者調(diào)用宏,比如輸出一個(gè)程序中變量的值

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

我們輸出了變量user的值,下面Continue Execution表示程序不會(huì)中斷,輸出后繼續(xù)執(zhí)行,注意表達(dá)式需要用{}括起來,,其他的部分會(huì)被作為字符串輸出。設(shè)定WhenHit后斷點(diǎn)變成了方 形(看厭了圓斷點(diǎn),我還挺喜歡這個(gè)方家伙的)

在output中查看輸出結(jié)果,如下:

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

既然可以計(jì)算表達(dá)式,我們的第一個(gè)最簡方案就出來了,也就是在程序執(zhí)行到斷點(diǎn)的時(shí)候,輸出 DateTime.Now,這樣當(dāng)然是可行的,但是我們需 要的是時(shí)間間隔,所以我們還需要自己來算個(gè)減法,還是挺麻煩的,怎么樣才能讓程序自己輸出時(shí)間間隔呢?有一個(gè)想法是這樣的,我們在上一個(gè)斷點(diǎn)聲明一個(gè)時(shí)間 變量,然后在下面的斷點(diǎn)里用DataTime.Now減去這個(gè)變量,即

斷點(diǎn)一的條件:{DateTime _t=DateTime.Now;}

斷點(diǎn)二的條件:{DateTime.Now-t;}

看起來不錯(cuò),但是實(shí)際運(yùn)行時(shí)就有問題了,讓我們看看輸出吧

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

上面高亮的部分說,變量申明只能在immediate window中進(jìn)行,所以斷點(diǎn)一的變量沒有申明成功,關(guān)于immediatewindow,我們以后會(huì)涉獵到,反正就是說想在表達(dá)式里申明變量,沒門,死 路一條.那么我們怎么才能不申明變量又時(shí)間點(diǎn)呢?

這時(shí)我想起了Thread.SetData 方法,這個(gè)方法可以往當(dāng)前線程專門提供的空間中插入一些數(shù)據(jù),并且可以通過GetData得到數(shù)據(jù),具體細(xì)節(jié)參考

http://msdn2.microsoft.com/zh-cn/library/system.threading.thread.setdata(VS.80).aspx

于是方案就有了,在第一個(gè)斷點(diǎn)處把時(shí)間放入Thread的DataSlot,然后第二個(gè)斷點(diǎn) 取出來相減

斷點(diǎn)一的條件: {Thread.SetData(Thread.GetNamedDataSlot("ExecutionTime"),DateTime.Now);}

斷點(diǎn)二的條件: {DateTime.Now-(DateTime)System.Threading.Thread.GetData(System.Threading.Thread.GetNamedDataSlot("ExecutionTime"));}

看看輸出效果

[摘]VS2005調(diào)試技巧集合 - 竹子 - 竹子

我們的目的已經(jīng)達(dá)到了,output中成功的輸出了時(shí)間間隔,當(dāng)然,還不是很完善,首先,這 個(gè)方法限于兩個(gè)斷點(diǎn),你想多打幾個(gè)斷點(diǎn),測試兩兩間的間隔還是比較麻煩.測量精度也可以提高,大家有興趣可以自己研究這個(gè)方法的擴(kuò)展

 

==================================

《高效編程十八式》(11/13)調(diào)試

http://blog.sina.com.cn/s/blog_4ed027020100hgr6.html

調(diào)試

王偉冰

    調(diào)試可以深入程序內(nèi)部,觀察運(yùn)行時(shí)各個(gè)變量的值。但是,并不是一出現(xiàn)bug就要調(diào)試。調(diào)試最適合用來探究一些自己不太熟悉的語言特性或者是技術(shù)。比如你對(duì) C++某些語句的作用不太熟悉,對(duì)某個(gè)庫函數(shù)的作用不太熟悉,調(diào)試一下,就可以看得清清楚楚了。如果程序只是邏輯出錯(cuò)誤,最好的方法是測試,通過逐個(gè)單元 的測試,找出問題的所在。為什么測試的效率更高?因?yàn)闇y試可以是自動(dòng)化的,你可以編寫測試代碼,一次性地完成很多測試,但調(diào)試只能一步一步地來。調(diào)試的好 處是可以直接看變量的值,而測試的話,必須寫額外的代碼把變量的值輸出到控制臺(tái)或者日志文件里。下面說一些調(diào)試的技巧。

 

    斷點(diǎn)

    最簡單的一種,設(shè)置一個(gè)斷點(diǎn),程序執(zhí)行到那一句就自動(dòng)中斷進(jìn)入調(diào)試狀態(tài)。

 

    單步執(zhí)行

    有三種,一種是每次執(zhí)行一行;一種是每次執(zhí)行一行,但遇到函數(shù)調(diào)用就會(huì)跳到被調(diào)用的函數(shù)里;一種是直接執(zhí)行當(dāng)前函數(shù)里剩下的指令,返回上一級(jí)函數(shù)。在 Visual Studio中,上面三種方法對(duì)應(yīng)的快捷鍵分別為F10、F11、Shift+F11。

 

    監(jiān)視

    調(diào)試器可能會(huì)自動(dòng)列出一些相關(guān)變量的值,但是你可能還關(guān)心其它變量的值,可以添加對(duì)這些變量的監(jiān)視。還可以監(jiān)視一個(gè)表達(dá)式的值,比如a+b。但是,這個(gè)表 達(dá)式最好不要修改變量的值,比如監(jiān)視a++都會(huì)導(dǎo)致監(jiān)視時(shí)修改了a的值,影響了程序的運(yùn)行結(jié)果。

 

    條件中斷

    假如你有這樣的循環(huán):

    for(int i=0;i<100;i++){

        for(int j=0;j<100;j++){

            ……

        }

    }

    你懷疑當(dāng)i=10且j=10的時(shí)候執(zhí)行有問題,那如何調(diào)試?用斷點(diǎn)的話,從i=0的初始狀態(tài),需要中斷10次才能到i=10,然后從j=0也需要再中斷 10次,才能到j(luò)=10的狀態(tài)。所以想進(jìn)入i=10且j=10的狀態(tài),需要中斷20次,這太麻煩了??梢允褂脳l件中斷:

    for(int i=0;i<100;i++){

        for(int j=0;j<100;j++){

            if(i==10 && j==10){

                ; //空語句

            }

            ……

        }

    }

    在空語句的那一行設(shè)置斷點(diǎn)就可以了。

    上面的if結(jié)構(gòu)太占地方,還可以用assert:

    assert(i!=10 || j!=10);

    斷言i不為10或j不為10,那么當(dāng)i=10且j=10的時(shí)候,斷言就不成立,程序就會(huì)中斷,進(jìn)入調(diào)試狀態(tài)。

    有時(shí)候用throw也可以中斷:

    if(i==10 && j==10)throw;

    但是最好不要這樣做,調(diào)試器不一定會(huì)在throw的地方中斷。

 

    控制變量法

    其實(shí)這已經(jīng)不算是調(diào)試的內(nèi)容了,但是也是一種找出bug原因的手段,所以還是在這里說。

    控制變量法常用于科學(xué)研究中,比如說,研究牛頓第二定律a=F/m,a與F和m都有關(guān),那么可以先固定m,研究a與F的關(guān)系;然后固定F,研究m與a的關(guān) 系。

    對(duì)于一個(gè)程序來說,一個(gè)bug可能跟多處代碼有關(guān)。假如你懷疑這個(gè)bug與某些語句有關(guān),可以把這些語句注釋掉,或者是改一改,看看bug是否還存在,如 果不存在,說明確實(shí)跟這些語句有關(guān)。(當(dāng)然,要保證程序少了這些語句之后還可以順利運(yùn)行。)如果bug還存在,就說明它跟這些語句無關(guān)。

    有些時(shí)候我們?nèi)狈φ{(diào)試工具,比如在網(wǎng)頁上運(yùn)行的程序,在特殊設(shè)備上運(yùn)行的程序,那么控制變量法是一種很有用的代替手段。

 

    二分法

    二分法是控制變量法的進(jìn)一步擴(kuò)展。

    在數(shù)學(xué)上,二分法用于求一個(gè)連續(xù)函數(shù)的根。比如一個(gè)函數(shù)f(x),如果f(x1)>0且f(x2)<0, 那么在區(qū)間x1和x2之間,必定存在一個(gè)x,使f(x)=0。然后我們再考察區(qū)間的中點(diǎn)x3=(x1+x2)/2, 如果f(x3)>0,則函數(shù)的根就在區(qū)間x3和x2之間,如果f(x3)<0, 那么函數(shù)的根就在區(qū)間x1和x3之間。如此不斷地把區(qū)間一分為二,最后鎖定函數(shù)的根。

    對(duì)于一個(gè)程序來說,如果當(dāng)前情況是有bug的,那就好比是f(x1)>0;如果你把main函數(shù)里所有的操作都注釋掉,那么 程序什么都不做,就不可能有bug,那就好比是f(x2)<0;于是在這兩種狀態(tài)之中,肯定存在一些臨界的語句,當(dāng)這些語句 改動(dòng)的時(shí)候,就會(huì)使程序在有bug和無bug狀態(tài)間切換,這些語句就是bug的原因所在。運(yùn)用二分法的思想可以鎖定這些臨界語句。一開始先對(duì)程序做一些大 刀闊斧的改動(dòng),比如說,程序的主循環(huán)會(huì)循環(huán)10次,就改成1次;程序有10個(gè)功能,就關(guān)掉5個(gè)功能??纯茨男└膭?dòng),可以讓程序由有bug狀態(tài)切換到無 bug狀態(tài)。找到這樣改動(dòng)后,就把這個(gè)改動(dòng)再細(xì)分成幾個(gè)小改動(dòng),比如關(guān)掉5個(gè)功能,就細(xì)分為關(guān)掉一兩個(gè)功能,再看看哪些小改動(dòng)可以讓程序由有bug狀態(tài)切 換到無bug狀態(tài)。如此一步一步縮小包圍圈,就后鎖定一個(gè)無法再分的小改動(dòng),這個(gè)改動(dòng)就是bug的原因所在。

 

    同步法

    有些bug是由于多線程而產(chǎn)生的。因?yàn)樵诓煌€程里的操作我們無法預(yù)測其發(fā)生的順序,可能當(dāng)它們按某種次序進(jìn)行時(shí),bug不會(huì)出現(xiàn),當(dāng)它們按另一種次序進(jìn) 行時(shí),bug就出現(xiàn)了。比如多線程那一節(jié)說到的那個(gè)銀行帳戶,如果沒有加同步鎖,就會(huì)出現(xiàn)這種bug。對(duì)這種bug的調(diào)試是很困難的,有時(shí)你運(yùn)行程序發(fā)現(xiàn) 了bug,而在進(jìn)行調(diào)試的時(shí)候,由于執(zhí)行順序不同了,bug又不出現(xiàn)了。

    為了解決這個(gè)問題,我想了一個(gè)辦法,就是利用同步事件,強(qiáng)行把多線程的程序按照預(yù)定好的順序去執(zhí)行。比如說有兩個(gè)線程,一開始就讓線程1運(yùn)行,線程2睡 覺,線程1運(yùn)行到某個(gè)特定的點(diǎn)后,就換線程2運(yùn)行,線程1睡覺。任何時(shí)候,都只有一個(gè)線程可以運(yùn)行。我們可以在多次運(yùn)行的過程中使用不同的執(zhí)行順序,如果 按某種執(zhí)行順序運(yùn)行之后bug浮現(xiàn)了,那么就把這種順序記錄下來。然后按照這種順序進(jìn)入調(diào)試,找出bug。

    用這種方法一定要謹(jǐn)慎,如果你的程序里本來就有線程同步的代碼,再加上這些強(qiáng)制的同步,可以會(huì)導(dǎo)致死鎖。

=============================================

Visual Studio 調(diào)試(Debug)小技巧

http://hi.baidu.com/liudong/blog/item/d0434c08c6d315970b7b827e.html

在Visual Studio 運(yùn)行調(diào)試過程中,有兩個(gè)非常有用的小工具:
1,Command Window。
2,Immediate Window。

Command Window用于執(zhí)行一些有用的命令。例如創(chuàng)建一個(gè)新文件可以使用命令:
         File.NewFile "abc.cpp"
有趣的是提供一個(gè)和Dos中cls類似命令。

Immediate Window提供在調(diào)試過程中運(yùn)行一些有用的表達(dá)式,或者查看程序中的變量的值。例如程序中有兩個(gè)變量a和b,現(xiàn)在要測試a+b的值,可以使用下面的命令 (注意前面的>不可省略):
         >Debug.Print a + b

MSDN參考:
ms-help://MS.MSDNQTR.v90.en/dv_vscmds/html/48711628-1909-4713-a73e-d7b714c77f8a.htm
ms-help://MS.MSDNQTR.v90.en/dv_vscmds/html/d33e7937-73f3-4c69-9df0-777a8713c6f2.htm

====================================

在vs2008 C++下調(diào)試控制臺(tái)程序的 心得及技巧

http://blog.sina.com.cn/s/blog_62466e480100f8cw.html

Visual Studio 2008環(huán)境與VC6.0的環(huán)境存在著比較大的區(qū)別,下面就一些小小的區(qū)別在這里做一些探討,歡迎指教!

1、如果是調(diào)試控制臺(tái)程序,很多時(shí)候點(diǎn)擊“啟動(dòng)調(diào)試”后是一閃而過,此時(shí)可有兩種方法讓cmd下dos調(diào)試屏幕暫停:

A:不要直接點(diǎn)擊vs2008的“啟動(dòng)調(diào)試”按鈕,而是按Control+F5組合鍵。

B:在主函數(shù)main()里“return 0;”前加上兩句:cin.get();樣式如下

eg: int main()
          {
              cout<<"這是一個(gè)調(diào)試屏幕暫停的例子!"<<endl;
              cin.get();
              cin.get();
              return 0;
         }

2、類、函數(shù)和變量是C++編譯器的標(biāo)準(zhǔn)組件,它們都放置在名稱空間std中(此時(shí)頭文件沒有后綴名h)。在vs2008 C++下,如果不包含using namespace std;指令,那么必須使用std::前綴,如

#include "stdafx.h"
#include<iostream>   //頭文件沒有h后綴名

void simon(int); //函數(shù)原型

//using namespace std;     沒有使用std名稱空間

int _tmain(int argc, _TCHAR* argv[])
{
simon(3);
std::cout<<"請輸入一個(gè)整數(shù): "; //必須使用std::前綴,以下都是
int count;
std::cin>>count;
simon(count);
std::cout<<"完成!"<<std::endl;

std::cin.get();//這兩行是使調(diào)試屏幕暫停,不會(huì)一閃而過
std::cin.get();//讓程序等待鍵擊
return 0;//退出主函數(shù)
}

void simon(int n) //自定義函數(shù)
{
std::cout<<"現(xiàn)在整數(shù)是 "<<n<<"測試!"<<std::endl;
}

下面是一個(gè)使用using namespace std;名稱空間的對(duì)比:

#include "stdafx.h"
#include<iostream>

void simon(int);

using namespace std; //這是一個(gè)使用std;名稱空間的例子

int _tmain(int argc, _TCHAR* argv[])
{
simon(3);
cout<<"請輸入一個(gè)整數(shù): ";
int count;
cin>>count;
simon(count);
cout<<"完成!"<<endl;

cin.get();
cin.get();
return 0;
}

void simon(int n)
{
cout<<"現(xiàn)在整數(shù)是: "<<n<<" 測試!"<<endl;
}

還有一種方法,就是既不使用std;名稱空間,也不使用std::前綴,而是使用using編譯指令。如:

#include "stdafx.h"
#include<iostream>

using std::cout; //直接使用using指令
using std::cin;
using std::endl;


void simon(int);

//using namespace std; //這是一個(gè)既沒有使用std;名稱空間也沒有使用std::前綴的例子

int _tmain(int argc, _TCHAR* argv[])
{
simon(3);
cout<<"請輸入一個(gè)整數(shù): ";
int count;
cin>>count;
simon(count);
cout<<"完成!"<<endl;

cin.get();
cin.get();
return 0;
}

void simon(int n)
{
cout<<"現(xiàn)在整數(shù)是: "<<n<<" 測試!"<<endl;
}

===========================




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多