1. 파일 ¶
Watch 창에서 표현되는 표현을 정의한 파일이다. (파일은 VC 디렉토리에서 검색을 하면 나온다.)
내가 만든 형태도 여기에서 일반형으로 표현이 가능하다. (수정은 좀해야한다.)
내가 만든 형태도 여기에서 일반형으로 표현이 가능하다. (수정은 좀해야한다.)
2. step into ? -_-;; ¶
Visual C++ .net 에 있는 파일이다.
살표보면 MFC, ATL, STL의 기본 데이터형이 Watch 윈도우 상에서 표현되는 형태가 정의되어 있음을 알 수 있다.
~cpp C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\Debugger
에 존재한다.살표보면 MFC, ATL, STL의 기본 데이터형이 Watch 윈도우 상에서 표현되는 형태가 정의되어 있음을 알 수 있다.
~cpp ; AutoExp.Dat - templates for automaticially expanding data ; Copyright(c) 1997-2001 Microsoft Corporation. All Rights Reserved. ;--------------------------------------------------------------- ; ; While debugging, Data Tips and items in the Watch and Variable ; windows are automatically expanded to show their most important ; elements. The expansion follows the format given by the rules ; in this file. You can add rules for your types or change the ; predefined rules. ; ; For good examples, read the rules in this file. ; ; To find what the debugger considers the type of a variable to ; be, add it to the Watch window and look at the Type column. ; ; An AutoExpand rule is a line with the name of a type, an equals ; sign, and text with replaceable parts in angle brackets. The ; part in angle brackets names a member of the type and an ; optional Watch format specifier. ; ; AutoExpand rules use the following syntax. The equals sign (=), ; angle brackets (<>), and comma are taken literally. Square ; brackets ([]) indicate optional items. ; ; type=[text]<member[,format]>... ; ; type Name of the type (may be followed by <*> for template ; types such as the ATL types listed below). ; ; text Any text.Usually the name of the member to display, ; or a shorthand name for the member. ; ; member Name of a member to display. ; ; format Watch format specifier. One of the following: ; ; Letter Description Sample Display ; ------ -------------------------- ------------ ------------- ; d,i Signed decimal integer 0xF000F065,d -268373915 ; u Unsigned decimal integer 0x0065,u 101 ; o Unsigned octal integer 0xF065,o 0170145 ; x,X Hexadecimal integer 61541,X 0X0000F065 ; l,h long or short prefix for 00406042,hx 0x0c22 ; d, i, u, o, x, X ; f Signed floating-point 3./2.,f 1.500000 ; e Signed scientific-notation 3./2.,e 1.500000e+000 ; g Shorter of e and f 3./2.,g 1.5 ; c Single character 0x0065,c 'e' ; s Zero-terminated string pVar,s "Hello world" ; su Unicode string pVar,su "Hello world" ; ; For details of other format specifiers see Help under: ; "format specifiers/watch variable" ; ; The special format <,t> specifies the name of the most-derived ; type of the object. This is especially useful with pointers or ; references to a base class. ; ; If there is no rule for a class, the base classes are checked for ; a matching rule. ; ; There are some special entries allowed in the AutoExpand section: ; $BUILTIN is used to display more complex types that need to do more ; than just show a member variable or two. ; $ADDIN allows external DLLs to be added to display even more complex ; types via the EE Add-in API. The first argument is the DLL name, the ; second argument is the name of the export from the DLL to use. For ; further information on this API see the sample called EEAddIn. ; [AutoExpand] ; from windef.h tagPOINT =x=<x> y=<y> tagRECT =top=<top> bottom=<bottom> left=<left> right=<right> ; from winuser.h tagMSG =msg=<message,x> wp=<wParam,x> lp=<lParam,x> ; intrinsics __m64 =<m64_i64,x> __m128=$BUILTIN(M128) __m128i=$BUILTIN(M128I) __m128d=$BUILTIN(M128D) ; from afxwin.h CDC =hDC=<m_hDC> attrib=<m_hAttribDC> CPaintDC =<,t> hWnd=<m_hWnd> CPoint =x=<x> y=<y> CRect =top=<top> bottom=<bottom> left=<left> right=<right> CSize =cx=<cx> cy=<cy> CWnd =<,t> hWnd=<m_hWnd> CWinApp =<,t> <m_pszAppName,s> CWinThread =<,t> h=<m_hThread> proc=<m_pfnThreadProc> ; from afxcoll.h CPtrList =cnt=<m_nCount> ; from afxstat_.h CProcessLocalObject =<,t> CThreadLocalObject =<,t> ; from afx.h CArchiveException =cause=<m_cause> CFile =hFile=<m_hFile> name=<m_strFileName.m_pchData,s> CFileException =cause=<m_cause> OS Error=m_lOsError CMemFile =pos=<m_nPosition> size=<m_nFileSize> CObject =<,t> CRuntimeClass =<m_lpszClassName,s> CStdioFile =FILE*=<m_pStream> name=<m_strFilename.m_pchData,s> CTimeSpan =time=<m_time> CTime =time=<m_time> ; from afxcoll.h CByteArray =count=<m_nCount> CStringList =count=<m_nCount> ; same for all CXXXArray classes ; same for CXXXList ; same for CMapXXToXX ; various string classes from MFC & ATL ATL::CStringT<*> =<m_pszData> CSimpleStringT<*>=<m_pszData> ATL::CSimpleStringT<*>=<m_pszData> _com_error=<m_hresult,hr> _bstr_t=<m_Data->m_wstr,su> (<m_Data->m_RefCount,u>) _com_ptr_t<*>=<m_pInterface> _LARGE_INTEGER=<QuadPart> ATL::CComPtr<*>=<p> ATL::CComBSTR=<m_str,su> ATL::CComQIPtr<*>=<p> tagVARIANT=$BUILTIN(VARIANT) VARIANT=$BUILTIN(VARIANT) _GUID=$BUILTIN(GUID) ; see EEAddIn sample for how to use these ;_SYSTEMTIME=$ADDIN(EEAddIn.dll,AddIn_SystemTime) ;_FILETIME=$ADDIN(EEAddIn.dll,AddIn_FileTime) ;ANSI C++ Standard Template library std::basic_string<char,std::char_traits<char>,std::allocator<char> >=$BUILTIN(NSTDSTRING) std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >=$BUILTIN(WSTDSTRING) std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >=$BUILTIN(WSTDSTRING) std::map<*>=size=<_Mysize> std::vector<*>= first=<_First> last=<_Last> std::list<*> =size=<_Mysize> std::multimap<*>=size=<_Mysize> std::set<*> =size=<_Mysize> std::deque<*> =size=<_Mysize> std::queue<*> =size=<c._Mysize> std::priority_queue<*>= first=<c._First> last=<c._Last> std::stack<*> =size=<c._Mysize> std::binder1st<*>= op=<op> value=<value> std::binder2nd<*>= op=<op> value=<value> std::pair<*> =first=<first> second=<second> std::less<*>=lessthan std::greater<*>=greaterthan ; This section lets you define your own errors for the HRESULT display. ; You need to list the error code in unsigned decimal, followed by the message. ; Changes will take effect the next time you redisplay the variable. [hresult] ;1234=my custom error code