Root > Advanced topics > BugID


Previous pageReturn to chapter overviewNext page   

BugID is a 4-byte unsigned integer (LongWord) which is used to identify exception, for example: 76BA0000. Two exception with the same BugID value are considered to be the same. Two bug reports are considered to be duplicates of each other if they are bug reports about exceptions with the same BugID. BugID is used to establish uniqueness for many EurekaLog features, for example:

"Do not save duplicate exceptions" option identifies unique reports via BugID;
Sending identifies unique reports via BugID;
EurekaLog Viewer identifies unique reports via BugID.


BugID consists of two parts. Hi-word is defined by EurekaLog. Low-word is not used by EurekaLog and it's left for your customizations. For example, if BugID is 76BA0000, then hi-word (defined by EurekaLog) is $76BA, low-word (defined by you) is $0000.


Hi-word of BugID is a CRC16 value of string ("BugID ident") which includes:

application and module identification
exception class (including additional error number for Win32 and OLE errors)
two lines from call stack

"BugID ident" does not include exception message and exact error location (address). Only human-readable names are taken from call stack (unit name, class name and routine name). Thus, BugID will not change when you rebuild your application.


You can alter BugID (either by appending custom lo-word or fully replace it) in OnCustomBugID event handler.


Important note: do not confuse context ID and BugID. These are two completely different things! BugID is an exception identifier, which is different for each exception (and depends even on code which has raised the exception). BugID is used to identify duplicate (e.g. the same) exception. Each and every exception has BugID assigned. Context ID is an optional ID not linked with BugID. Assigning context ID to exception will turn exception into expected exception.



See also

ExceptionInfo.BugID property

Send feedback... Build date: 2022-03-28
Last edited: 2018-06-14
The documentation team uses the feedback submitted to improve the EurekaLog documentation. We do not use your e-mail address for any other purpose. We will remove your e-mail address from our system after the issue you are reporting has been resolved. While we are working to resolve this issue, we may send you an e-mail message to request more information about your feedback. After the issues have been addressed, we may send you an email message to let you know that your feedback has been addressed.

Permanent link to this article: