Any way to make Windbg to break when a specific value is assigned to the eax register? I know one of the functions in my program is returning an specific error,
eax
You can set a breakpoint on all your suspect functions and then check the eax register value like so:
bp myAddress ".if (@retreg == dodgyVal) {walk the stack and do other cool stuff} .else {gc}"
See conditional breakpoints and also pseudo-register syntax for available register values