Changeset 431 for branches/branch-1-0/src
- Timestamp:
- Nov 29, 2017, 5:52:24 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/branch-1-0/src/helpers/except.c
r384 r431 300 300 } 301 301 else if (arc == ERROR_INVALID_ADDRESS) 302 fprintf(file, "invalid"); 302 { 303 if (ulCheck < 0x10000) 304 fprintf(file, "not an address"); 305 else 306 fprintf(file, "invalid address"); 307 } 303 308 } 304 309 … … 443 448 * This calls excPrintStackFrame for each stack frame. 444 449 * 445 *@@changed V0.9.0 [umoeller]: added support for application hook446 *@@changed V0.9.0 (99-11-02) [umoeller]: added TID to dump447 *@@changed V0.9.2 (2000-03-10) [umoeller]: now using excPrintStackFrame448 *@@changed V0.9.3 (2000-05-03) [umoeller]: fixed crashes449 *@@changed V0.9.6 (2000-11-06) [umoeller]: added more register dumps450 *@@changed V0.9.13 (2001-06-19) [umoeller]: added global flag for whether this is running451 *@@changed V0.9.16 (2001-11-02) [pr]: make object display signed452 *@@changed V0.9.19 (2002-03-28) [umoeller]: added thread ordinal453 *@@changed V1.0.0 (2002-08-28) [umoeller]: added OS revision to dump454 450 *@@changed XWP V1.0.9 (2010-04-16) [pr]: add variable initialisation 455 451 */ 456 452 457 VOID excExplainException(FILE *file, // in: logfile from fopen() 458 PSZ pszHandlerName, // in: descriptive string 459 PEXCEPTIONREPORTRECORD pReportRec, // in: excpt info 460 PCONTEXTRECORD pContextRec) // in: excpt info 453 VOID excExplainException2(FILE *file, // in: logfile from fopen() 454 PSZ pszHandlerName, // in: descriptive string 455 PEXCEPTIONREPORTRECORD pReportRec, // in: excpt info 456 PCONTEXTRECORD pContextRec, // in: excpt info 457 PEXCEPTIONREGISTRATIONRECORD2 pRegRec2) // in: reg info 461 458 { 462 459 ULONG aulBuf[3]; … … 666 663 fprintf(file, "\nProcess information was not available."); 667 664 665 // avoid trouble if the developer is using an older version of except.h 666 #ifdef TRY_V2 667 if (pRegRec2 && 668 pRegRec2->pvUser == &(pRegRec2->pszSetBy) && 669 pRegRec2->pszSetBy) 670 { 671 fprintf(file, 672 "\nException handler:" 673 "\n Set by: %s\n", 674 pRegRec2->pszSetBy ? pRegRec2->pszSetBy : "unknown"); 675 676 if (pRegRec2->pszFmt) 677 { 678 fprintf(file, " Details: "); 679 fprintf(file, pRegRec2->pszFmt, 680 pRegRec2->ulArg1, pRegRec2->ulArg2, 681 pRegRec2->ulArg3, pRegRec2->ulArg4); 682 } 683 } 684 #endif 685 686 fprintf(file, "\n"); 687 668 688 /* 669 689 * now call the hook, if one has been defined, … … 680 700 if (pContextRec->ContextFlags & CONTEXT_INTEGER) 681 701 { 682 // DS the following 4 added V0.9.6 (2000-11-06) [umoeller]683 702 fprintf(file, "\n DS = %08lX ", pContextRec->ctx_SegDs); 684 excDescribePage(file, pContextRec->ctx_SegDs);685 // ES686 703 fprintf(file, "\n ES = %08lX ", pContextRec->ctx_SegEs); 687 excDescribePage(file, pContextRec->ctx_SegEs);688 // FS689 704 fprintf(file, "\n FS = %08lX ", pContextRec->ctx_SegFs); 690 excDescribePage(file, pContextRec->ctx_SegFs);691 // GS692 705 fprintf(file, "\n GS = %08lX ", pContextRec->ctx_SegGs); 693 excDescribePage(file, pContextRec->ctx_SegGs);694 706 695 707 // EAX … … 721 733 // *** instruction 722 734 723 fprintf(file, " Instruction pointer (where exception occurred):\n CS:EIP = %04lX:%08lX ",735 fprintf(file, "\nInstruction pointer (where exception occurred):\n CS:EIP = %04lX:%08lX ", 724 736 pContextRec->ctx_SegCs, 725 737 pContextRec->ctx_RegEip); … … 728 740 // *** CPU flags 729 741 730 fprintf(file, "\n EFLAGS = %08lX ", pContextRec->ctx_EFlags);742 fprintf(file, "\n EFLAGS = %08lX\n", pContextRec->ctx_EFlags); 731 743 732 744 /* … … 766 778 // lower global flag again V0.9.13 (2001-06-19) [umoeller] 767 779 G_ulExplainExceptionRunning--; 780 } 781 782 VOID excExplainException(FILE *file, // in: logfile from fopen() 783 PSZ pszHandlerName, // in: descriptive string 784 PEXCEPTIONREPORTRECORD pReportRec, // in: excpt info 785 PCONTEXTRECORD pContextRec) // in: excpt info 786 { 787 excExplainException2(file, pszHandlerName, pReportRec, pContextRec, 0); 768 788 } 769 789 … … 962 982 { 963 983 // write error log 964 excExplainException(file, 965 "excHandlerLoud", 966 pReportRec, 967 pContextRec); 984 excExplainException2(file, 985 "excHandlerLoud", 986 pReportRec, 987 pContextRec, 988 pRegRec2); 968 989 fclose(file); 969 990 } … … 1031 1052 "excHandlerQuiet", 1032 1053 pReportRec, 1033 pContextRec); 1054 pContextRec 1055 pRegRec2); 1034 1056 fclose(file); 1035 1057 }
Note:
See TracChangeset
for help on using the changeset viewer.