一次Debug經曆

來源:互聯網
上載者:User

    周五天晚些時候,部門發布了一個“世界末日”版本的產品,我們小組參與了其中Office外掛程式的開發工作。這算是一個比較重要的節點。產品發布後,在同事機器上安裝部署之後,Office外掛程式發現了一個比較嚴重的Bug,就是使用者在開啟一個已經存在的Excel檔案的時候,我們的外掛程式不能正常載入,因為之前開發調試的時候,都是直接選擇Excel軟體為啟動項的,這樣,每一次都是直接開啟的Excel程式,而不是一個檔案。在檢查這個Bug的時候又發現了另外一個比較嚴重的Bug,就是Excel關閉之後,工作管理員中的Excel.exe這個進程沒有關閉,這個Bug在開發階段我注意到了,以為是開發階段調試的時候才有的,所以沒有太在意。於是乎跟領導們反應之後,領導過來說這個Bug能不能修複,最好能修複,不可以的話,叫測試那邊注意一點兒就可以。我說可以,但是需要一點兒時間。我和另外一個同事開始尋找解決方案。試過幾種方案問題依然沒有進展,由於快周末了下班後我就讓同事早點兒回去,自己吃完飯後又查了一會兒,沒有進展。
    感覺有點累,於是抱著兩本剛買的書就往家走。回來之後就洗漱完了之後就用熱水泡腳。腦袋中還是想著那個問題怎麼搞,於是開啟電腦又在網上搜了一些解決方案,依然無解。於是在MSDN上用蹩腳的英文發了我有史以來的第一個問題,以前一般是在StackOverflow上面去找答案或者回答別人的問題。

    發完了之後,不到幾分鐘之內,有個傢伙回複了我,有點兒小激動。大意思是,你代碼可能有問題導致載入不上。可以自己使用System.Diagnostic.Debugger.Break()調試一下。我一開始覺得沒有回答上我的問題,但是突然又好像明白了什麼。不過實在是太累,就困了。
    第二天下午決定去公司試一試剛才那方法,,於是興沖沖的跑去公司,裡面1個人都沒有。開啟電腦按照提示的方法修改代碼,編譯完成之後,脫離Visual Studio,直接運行Excel檔案,發現Excel竟然提示代碼中有斷點,要不要調試,當然要調試,看到這個彈出框我無比開心,於是調出Visual Studio,真的能夠進行逐步的調試,因為之前覺得,脫離了Visual Studio,或者即使是使用Attach Process的方式在目前這種問題下是沒有辦法調試的。突然覺得那傢伙給我的回答太有價值了,他似乎明白我不知道咋調試一個外部的Excel程式。有了這個協助,馬上就定位到了問題的所在。載入.xla檔案,也就是載入自訂函數出了問題。於是乎根據提示的問題描述,試著在網上找答案,由於藕裝的是個中文版的Visual Studio,導致提示資訊都是中文的,這個非常麻煩,因為根據中文的錯誤資訊在中文網站上根本找不到問題,於是乎把錯誤提示翻譯成了英文,一下子就在MSDN上找到問題所在了,如。所以說裝英文版的開發工具不只是裝13,而是能夠大大提高工作效率。下周上班就換個最新的英文版的VS2012.

   

    重點是中間的那段英文的第二句話。就是說像xla這些外部載入的檔案都是由Add-in管理器來管理的,但是這個管理器只有在有一個可見的處於開啟狀態的Excel活頁簿時才能正常工作。平常我們直接開啟Excel的時候,Excel會協助我們建立一個預設的活頁簿,而當使用者要打一個活頁簿時,由於在開啟檔案之前外掛程式是需要載入進來的,由於Excel判斷使用者是開啟一個活頁簿,所以不會建立預設的活頁簿,在這種沒有預設活頁簿的情況下,外掛程式載入.xla自訂函數就會報錯。

    這個問題搞定之後,開始解決登入外掛程式後,關閉Excel,後台進程沒有關閉的問題。於是又是一頓google,終於在StackOverflow上找到了令我滿意的答案:

   

    於是按照上面的思路,在本機上測試沒問題,於是乎又在虛擬機器上的XP系統,03系統上測試了一番,估計是XP的記憶體管理不太好,導致還是回收不掉,不過算是解決了一大半的問題吧,下周上班再好好看看。 修完這兩個Bug,大概花了1個半小時,哈哈……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.