我有下面的代碼片段的東西類似:我可以在包含的代碼中設置斷點嗎?
// file alpha.c
void function_A()
{
int i;
#include "code.h"
}
和
//file beta.c
void function_B()
{
int i;
#include "code.h"
}
和
// file code.h
for(i = 1;i < 10;i++)
{
// do some stuff
if (very_rare_event)
{
// do something else
}
}
是的,我充分認識到它打破各種編碼實踐,但這是另一個故事(它是一個非常龐大,非常複雜,非常舊的系統的一部分,不會很快改變)。
我的問題是這樣的:是否有可能在code.h中的「// do something else」點設置一個斷點,以便您可以指定它是否是從alpha.c包含的實例或beta.c?如果是這樣,怎麼樣?
顯然,偉大的思想家都一樣! – 2010-01-12 19:09:36
+1狡猾的開關使用。由於常量切換表達式可能會得到編譯器警告,但是如果您使用這樣的包含編寫代碼,我認爲編譯器警告可能是您最擔心的問題。 – 2010-01-12 19:11:33
只有少數幾個文件被涉及時,這可能是確定的,並且您不想經常更改或添加斷點位置。但它不能太好 - 這太多了,你可能正在接近修復古怪編碼實踐的努力水平。 – 2010-01-12 20:51:50