21 August, 2020

Why is EurekaLog's call stack drawn in different colors?

Do you know what the different colors in the callstack mean?

EurekaLog Call Stack Colors

These colors help you to understand how call stack was build:
  • Red means crash or leak location. This is the exception's address. Each bug report has only one Red entry;
  • Black means a "reliable" entry. Such entry was found by a stack frame tracing, which usually indicate that it is a real entry (not false-positive);
  • Lighter Black means the same as Black, except it additionally indicate that stack frames' chain was reconstucted - for example, after FPO (Frame Pointer Ommission);
  • Grey means "possible" entry. Such entry was found by a RAW tracing, which means this entry could be false-positive.
  • Darker Grey is used to paint DLL entries without full debug information to indicate that function's name may be wrong. Information for such entries is filled by the "DLL Exports" debug provider when DLL have no debug information. Function's name is "(possible NAME)". It means that name of the function may be incorrect;
  • Light Grey is used to indicate EurekaLog's service entries. Such as thread wrappers, etc. Usually you can safely ignore these;
  • Navy is used to indicate important service routines, such as process/thread start, memory functions, etc. Those are "protected" entries, which means they will always be present - even when found by a RAW tracing;
  • Green means thread's caller/creator. It is always a last (bottom) line in the call stack. This is not actually a part of the current call stack. It rather indicates what code has created/started the current thread.

You can find more detailed information here.