wovencode / OpenMMO-Other

Ideas, Tasks and others
2 stars 0 forks source link

[ongoing] Debug Statements - Lowercase debug function does not support "jump to code" #22

Open DX4D opened 4 years ago

DX4D commented 4 years ago

Normally when you double click a debug statement in Unity, you are redirected directly to where the Debug statement was called in code. This behavior is invaluable to the debugging process. The lowercase debug method being used breaks this feature.

As this project grows this will make debugging way more difficult...Unity already supports everything the lowercase debug method does, it should be depreciated and the regular method of debugging should be used moving forward. Otherwise this will bite us in the ass further down the road...

wovencode commented 4 years ago

now idea how to solve this, the only solution is to use the default Debug.... functions instead.

wovencode commented 4 years ago

added Stack Trace to the debug statements, this makes it at least a bit easier.

DX4D commented 4 years ago

I think there is a way to set it up to jump to the code, but it probably requires more code to be added. At any rate, a stacktrace really is not enough. This is making your code extremely difficult and time consuming to debug and there is no benefit to it.

As mentioned, C# already provides a way to toggle debugging using the regular C# Debug method, it is in your project's solution files and can be toggled in visual studio right here:

devenv_HS6bN4sjPX

Unless I am missing something about the functionality of the lowercase debug method, I am not seeing it as anything but a negative here.

DX4D commented 4 years ago

@wovencode I believe I have finally found a solution to this, the details are outlined in this thread: https://answers.unity.com/questions/289006/catching-double-clicking-console-messages.html

I think it might actually be enough to simply compile the custom debugging class into a dll, since Unity cannot jump to that function in the dll it will jump to where it was called instead (which is what we want it to do).

NOTE: Only add the dll to the project, no PDB or MDB files