So, if your logs lacks line numbers like this one below, you don't get that extra help...
System.NullReferenceException: Object reference not set to an instance of an object.
at LineNumberDemo.Program.ThirdMethod(Int32 value)
at LineNumberDemo.Program.SecondMethod(Int32 value)
at LineNumberDemo.Program.FirstMethod(Int32 value)
at LineNumberDemo.Program.Main(String[] args)
- Open the Properties for your project.
- Click Build > Advanced and change "Debugging information" from "None" to "Pdb-only".
The pdb (Program database) files contains the infomation needed to map an instruction in your program to the original line in the source file. After changing that setting the log now looks like this:
System.NullReferenceException: Object reference not set to an instance of an object.
at LineNumberDemo.Program.ThirdMethod(Int32 value) in C:\Code\LineNumberDemo\LineNumberDemo\Program.cs:line 42
at LineNumberDemo.Program.SecondMethod(Int32 value) in C:\Code\LineNumberDemo\LineNumberDemo\Program.cs:line 35
at LineNumberDemo.Program.FirstMethod(Int32 value) in C:\Code\LineNumberDemo\LineNumberDemo\Program.cs:line 29
at LineNumberDemo.Program.Main(String[] args) in C:\Code\LineNumberDemo\LineNumberDemo\Program.cs:line 16
In Visual Studio 2017, "Pdb-only" is the default setting for the Release configuration, but I'm not sure it always has been, because I've seen lots of projects that did not include the pdb-files. They make the release bigger, but as long as that isn't a problem, I don't see any reason to not include them.
Good bug hunting!
Inga kommentarer:
Skicka en kommentar