Why does it thinks that the source file was modified?
MikiWatts
Posts: 13 Bronze 1
I'm profiling my application on a Point of Sale hardware, and do so by deploying a version on the hardware, profiling it, then copying the profiler results back to my dev machine and loading it there.
When I load the results in my dev machine, i get a warning message saying "This source file appears to have been modified since profiling was carried out".
I don't understand where that message is coming from, since I didn't change the source code between deploying to the POS and profiling it.
How does the profiler decides that ?
Also, I'm not sure if this is related, but while in most places in the source view i can drilldown, someplaces just won't let me drilldown. Could it be related to that that the profiler thinks that the file is different ?
When I load the results in my dev machine, i get a warning message saying "This source file appears to have been modified since profiling was carried out".
I don't understand where that message is coming from, since I didn't change the source code between deploying to the POS and profiling it.
How does the profiler decides that ?
Also, I'm not sure if this is related, but while in most places in the source view i can drilldown, someplaces just won't let me drilldown. Could it be related to that that the profiler thinks that the file is different ?
Comments
Could it be because in the settings i have the "save source code" option enabled ?
Line-level timings not lining up with the source code can be caused by a couple of problems: the most common is that the application that was profiled was compiled from a different version of the source code.
A less common cause can be that the C# compiler records different line positions from those used by our source control for some reason. Visual Studio usually warns about inconsistent line endings in situations where this can occur. We don't currently know about any situations which can cause this, though exotic unicode line endings or odd combinations of the ASCII \r and \n characters could potentially cause a conflict.
The occasional inability to drill down through a function can happen for a few reasons: this facility is implemented by inspecting the source code and comparing it to the generated call stacks. If the line-level data isn't matching up to the source code for any reason, it can be impossible to determine which function calls correspond to which line of code.
Interfaces, events, anonymous delegates, the yield operator and other C# features can result in functions being called at run-time that look very different to the way they are specified in the source code, which will make this feature fail to work.
Software Developer
Red Gate Software Ltd.