2012-04-23 48 views
4

我正在嘗試爲字符串類型編寫一個基於「autoexp.dat」的可視化工具。我已經縮減之後我的野心,試圖寫一個可視化工具,它包含一個空結尾的字符串領域一個非常簡單的測試類型:如何編寫非常簡單的Visual Studio調試器可視化工具?

namespace thizz { namespace izz { 
     class MyType { 
      const char* _ptr; 
     public: 
      MyType(const char* ptr) : _ptr(ptr) {} 
     }; 
    } 
} 

這是我在Visualiser的刺,但它有沒有影響如何Visual Studio中(2010年)顯示該類型的實例:

thizz::izz::MyType 
{ 
preview ([$e._ptr,s]) 
} 

(那將會在[展示臺]部分的頂部C:\ Program Files文件(x86)的\微軟的Visual Studio 10.0 \ Common7 \ Packages \ Debugger \ autoexp.dat)。

看着這個類型的實例:

thizz::izz::MyType t("testing testing"); 

只是顯示

t | {_ptr=0x0f56a6fc "testing testing" } | thizz::izz::MyType 
在監視窗口

+0

如果我從'可視化器定義'中刪除所有空格,它似乎工作!即:* thizz :: izz :: MyType {preview([$ e._ptr,s])} * – mackenir 2012-04-23 17:26:41

+0

您應該添加該答案並將其標記爲已解決,以便下一個出現此問題的人可以更輕鬆地看到它。 – Alex 2012-04-23 17:48:30

回答

1

爲了得到一個更通用的瀏覽器嘗試改變使用此:

thizz::izz::MyType { 
preview (#([$e._ptr,s])) 
stringview (#([$e._ptr,sb])) 
} 

這也將給放大鏡圖標將在你有一個較長的字符串的情況下打開一個更大的文本視圖窗口。它還會讓您選擇以HTML或XML格式進行渲染。

注意,以及該文件是對空格敏感的格式,我也發現了,你不能在字符串中使用冒號,否則它將生成分析錯誤。

調試器可視化程序功能非常強大,雖然語法可能相當令人困惑。作爲一般建議,我建議在[AutoExpand]部分首先創建一些條目,以總結您最感興趣的數據類型,然後如果您有自定義容器,請複製並修改vectorlist等的示例,這會給您在您的時間投資的最大回報。

0

我不能給出爲什麼在autoexp.dat我原來的「編碼」是行不通的一個明確的原因,但我發現,當被刪除了所有空白相同的代碼工作。

我又試圖重新添加空格,發現保持在第一行的初始開括號是必要的,以保持工作的定義。

相關問題