1. A method for examining a thread related to a computer system application failure comprising: generating a process thread wait chain, the process thread wait chain comprising an alternating sequence of one or more process threads and synchronization objects, wherein each process thread depends on another process thread of the process thread wait chain, the process thread wait chain starts with a failed process thread corresponding to a failed process and ends with a target thread, each synchronization object includes a handle to coordinate execution of at least two process threads of the wait chain, the failed process thread generating one or more process threads corresponding to a running process, the failed process and the running process each corresponding to a different application; identifying the target thread of the process thread wait chain based on a synchronization object of the process thread wait chain, wherein the handle of the synchronization object coordinates the execution of the failed process thread and the target thread, the target thread corresponds to the running process, and the target thread is generated by the failed process; opening a non-transitory memory module that is shared between a remote application program and the computer system; writing process bucketing parameter data to the shared non-transitory memory module, the process bucketing parameter data corresponding to the running process and including a name of a process associated with the target thread, version information of the process associated with the target thread, a timestamp of the failed application, a hash of a call stack associated with the target thread, and a code indicating a type of application failure; submitting the process bucketing parameters to the remote application program; analyzing the process bucketing parameters using the remote application program; and initiating a callback using the remote application program, the callback requesting kernel data corresponding to the computer system.