我正在测试是否可以依赖__LINE__
始终返回正确的值并创建一个包含许多行的大型源文件。
在某些时候,内联函数名称(其名称为fun@7564-1
,其中7564是行号)从零开始重复计数。
__LINE__
仍会返回正确的值为了说明,在一系列新行和被调试的方法超过65535的情况下,我设法获得了盲源步骤经验:
这个2 16 边界是故意还是偶然?它是由F#或CLR或PDB格式人为施加的限制吗?
注意(1):我只使用VS 2015在Windows 7和2012上使用F#4.0,.NET 4.5进行了测试。
注意(2):我怀疑这个边界会经常被击中,除非对于自动生成的源文件(在C#中我有一些超出这个边界的autogen文件)。
答案 0 :(得分:1)
这似乎是confirmed bug in Visual F#,错误报告有full repro solution for download。
在大型源文件中有related issue在Debug版本中抛出StackOverflowException
,在大型lambda或入口点上抛出another related issue also throwing an SOE,但在任何版本中都是如此。