2017-01-04 57 views
0

我真的很喜歡gdb如何允許我使用command命令爲斷點編寫例程。很多時候,我添加打印語句只是打印一條消息,我喜歡所有這些工作而不修改源文件。在Visual Studio中打印調試器消息而不修改代碼

我不得不使用Visual Studio,我發現插入調試打印語句的方式是使用OutputDebugString。但是,我不喜歡我需要修改我的源代碼才能進行調試。有沒有像在gdb中一樣在VS中打印調試消息的方法,即不需要修改源代碼。

此外,VC編譯器如何處理OutputDebugString調用?它是否真的在程序的程序集中編譯該行?如果我所做的唯一更改是添加對OutputDebugString的調用,是否需要編譯我的代碼?

+0

您總是可以使用宏來調試構建,如'#ifdef _DEBUG OutputDebugString()#endif',這樣當您在發佈模式下編譯時,這些函數都不會實際編譯,並且會被排除在程序之外。是的,該函數生成彙編(生成的機器)代碼。最後一個問題,我不完全明白,我認爲你需要編譯你的代碼,如果你做任何更改... –

+0

@ViniyoShouta謝謝你,這回答了一切。 –

+0

@ViniyoShouta這難道不合理嗎?我想知道爲什麼MS這樣做,gdb的方式看起來好多了。 –

回答

2

您正在尋找Visual Studio tracepoints

我沒有使用過它們,但它們似乎是well documented

tracepoint可以打印消息,而不涉及修改源代碼。

相關問題