我工作的一個工具,在使用Mono.Cecil能.NET二進制代碼進行分析行0xFEEFEE號。作爲其中的一部分,我還檢查了二進制文件的.pdb文件以將結果鏈接到源代碼行。如何限制在PDB文件
也能正常工作在大多數情況下:我從.PDB正確的源文件路徑和行號。然而,在某些情況下(我相信當代碼是#region
內,但不能肯定),行數設置爲16707566
(0xFEEFEE)。這是一個鮮爲人知的compiler feature來表明該行對用戶是隱藏的。問題是,當.pdb包含0xFEEFEE
作爲行號時,我不能用它做很多事情 - 我不能(很容易)將我的分析結果回到源代碼中。
我試圖更改一些Visual Studio選項,然後重新構建我正在分析的代碼,但我仍然將0xFEEFEE
作爲區域中代碼的行號。 (例如,我嘗試禁用區域,但它並沒有幫助,另外分析的代碼是從構建腳本構建的,而不是從IDE構建的。)
是否可以告訴C#編譯器(可能通過.csproj設置或在註冊表中)總是發出真實的行號(當它有意義時 - 對於'真實'的源代碼行)並且不使用這些隱藏的行標記?