Annotation of mstools/mfc/doc/tn007.txt, revision 1.1

1.1     ! root        1: Microsoft Foundation Classes                             Microsoft Corporation
        !             2: Technical Notes             
        !             3: 
        !             4: #7 : Windows debugging trace options
        !             5: 
        !             6: To help debug windows programs, the TRACE() mechanism is used.
        !             7: Textual debugging output will go to the debug console (debug terminal
        !             8: or CVW window).  Debugging and trace options are enabled when
        !             9: you compile your program with the _DEBUG symbol defined.
        !            10: 
        !            11: The options described in this note can be set using a debugger,
        !            12: in the initialization code of your application, or by using the
        !            13: AFX.INI file.  A sample AFX.INI file is provided in the \C700\MFC\SRC
        !            14: subdirectory.  This .INI file turns on diagnostic messages and uses the
        !            15: standard options.  The file must be placed in your Windows directory.
        !            16: 
        !            17: 
        !            18: Global switch:
        !            19: ==============
        !            20: 
        !            21: By default TRACE output is ignored.  If you set the global integer
        !            22: 'afxTraceEnabled' to TRUE (1), then TRACE output (and default afxDump output)
        !            23: is routed to the debugger.  
        !            24: 
        !            25: In CodeView, the following command can be used to set this value using the
        !            26: Command Window:
        !            27: 
        !            28:     MEI _afxTraceEnabled 1
        !            29: 
        !            30: This is the "memory enter integer" command.  Note the use of the leading
        !            31: underscore.  This is required when using the MEI command on externally
        !            32: visible C symbols.  If you are using an MFC library variant with 
        !            33: CodeView information (the CL /Zi option combined with the LINK /CODEVIEW
        !            34: option), which is the default for the _DEBUG libary and program variants, 
        !            35: then the following will also work:
        !            36:     
        !            37:     ? afxTraceEnabled = 1
        !            38: 
        !            39: 
        !            40: The flags:
        !            41: ==========
        !            42: 
        !            43: The global integer 'afxTraceFlags' is used to turn on the built-in reporting
        !            44: features of the MFC library.
        !            45: 
        !            46: The flags are all stored in the global integer 'afxTraceFlags'.  It can be
        !            47: set under program control or with the debugger.  The global integer
        !            48: 'afxTraceFlags' uses each bit to select a trace reporting option.
        !            49: 
        !            50: You can turn any bit on or off as desired.  Try playing with them to
        !            51: get a flavor of the report information they generate.
        !            52: 
        !            53:     // example under program control
        !            54:     afxTraceFlags = 4 + 8;        // windows message dumping
        !            55: 
        !            56: This functionality only exists in the debugging version of the library.
        !            57: Using the "memory enter integer" command of CodeView, you can set
        !            58: the value of this global variable, for example:
        !            59: 
        !            60:     MEI _afxTraceFlags 0x004
        !            61: 
        !            62: Again, note the use of the leading underscore for the MEI command. Also,
        !            63: when CodeView information is available the following command works:
        !            64:     
        !            65:     ? afxTraceFlags = 0x004
        !            66: 
        !            67: -----------------------------------------------------------------------------
        !            68: The options:
        !            69: ------------
        !            70: 
        !            71:     0x01 : Multi-app debugging.
        !            72:             This will prefix each 'TRACE' output with the name of the
        !            73:             application.  This will affect not only the explicit
        !            74:             TRACE output of your program, but also the additional
        !            75:             report options described below:
        !            76: 
        !            77:     0x02  : Windows Message report - in message pump
        !            78:             Report each message received in the main CWinApp message pump.
        !            79:             List the window handle, the message name or number,
        !            80:             and the 'wParam' and 'lParam'.
        !            81:             The report is made after the GetMessage, but before any
        !            82:             translate or dispatch.
        !            83: 
        !            84:             DDE messages will display additional data which is good for
        !            85:             some debugging scenarios in OLE).
        !            86: 
        !            87:             This will display messages that are posted - not those that
        !            88:             are sent.
        !            89: 
        !            90:     0x04  : Windows Message report - in WndProc
        !            91:             Like option '2' but applies to messages dispatched in the
        !            92:             CWnd::WindowProc (i.e. handles both posted and sent messages).
        !            93:             that are about to be dispatched).
        !            94:     
        !            95:     0x08  : Command handling report
        !            96:             A special case for WM_COMMAND/OnCommand handling.  Will
        !            97:             report the progress of the command routing mechanism.
        !            98:             Reports which class receives the command (i.e. there is
        !            99:             a matching message map entry).  Also reports when classes
        !           100:             don't receive a command (i.e. there is no matching message
        !           101:             map entry).
        !           102:             This is useful for MDI apps to see the flow of command
        !           103:             messages (i.e. child gets first crack, then frame).
        !           104: 
        !           105:     0x10 : Verbose OLE reporting.
        !           106:             This will report significant OLE notifications or requests.
        !           107:             Turn this on for an OLE client or server to get an indication
        !           108:             of the communication between the OLE DLLs and your OLE app.
        !           109:     
        !           110: -----------------------------------------------------------------------------
        !           111: Ease of Reading:
        !           112: ----------------
        !           113: 
        !           114: For ease of reading, certain frequent messages are not reported.
        !           115: These include:
        !           116:         mouse move messages (non-client and client)
        !           117:         WM_NCHITTEST
        !           118:         WM_SETCURSOR
        !           119:         WM_ENTERIDLE
        !           120:         WM_CTLCOLOR
        !           121: 
        !           122: I.e. the messages that are sent every time the mouse moves or during
        !           123:     idle processing or other common dialog processing.
        !           124: 
        !           125: -----------------------------------------------------------------------------

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.