codeview.h revision 7e4c97927a8d2ebb048bd46be404165c0e7a0485
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/** @file
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * IPRT - Microsoft CodeView Debug Information.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/*
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * Copyright (C) 2009-2013 Oracle Corporation
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync *
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * available from http://www.virtualbox.org. This file is free software;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * General Public License (GPL) as published by the Free Software
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync *
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * The contents of this file may alternatively be used under the terms
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * of the Common Development and Distribution License Version 1.0
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * VirtualBox OSE distribution, in which case the provisions of the
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * CDDL are applicable instead of those of the GPL.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync *
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * You may elect to license modified versions of this file under the
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * terms and conditions of either the GPL or the CDDL or both.
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync */
7b9f0c34e9ea328981c99e97054bdf8684d9d620vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#ifndef ___iprt_formats_codeview_h
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#define ___iprt_formats_codeview_h
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#include <iprt/types.h>
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#include <iprt/assert.h>
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync/** @defgroup grp_rt_fmt_codeview Microsoft CodeView Debug Information
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync * @{
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync */
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync/**
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * PDB v2.0 in image debug info.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * The URL is constructed from the timestamp and age?
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsynctypedef struct CVPDB20INFO
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync{
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync uint32_t u32Magic; /**< CVPDB20INFO_SIGNATURE. */
13f1ce3859ee77d9b9f4d2ca9f93e1633cb133bcvboxsync int32_t offDbgInfo; /**< Always 0. Used to be the offset to the real debug info. */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync uint32_t uTimestamp;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync uint32_t uAge;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync uint8_t szPdbFilename[4];
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync} CVPDB20INFO;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/** Pointer to in executable image PDB v2.0 info. */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsynctypedef CVPDB20INFO *PCVPDB20INFO;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/** Pointer to read only in executable image PDB v2.0 info. */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsynctypedef CVPDB20INFO const *PCCVPDB20INFO;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/** The CVPDB20INFO magic value. */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#define CVPDB20INFO_MAGIC RT_MAKE_U32_FROM_U8('N','B','1','0')
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/**
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * PDB v7.0 in image debug info.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * The URL is constructed from the signature and the age.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#pragma pack(4)
8bc8d66f188d5357155b8340e2d489573be2b607vboxsynctypedef struct CVPDB70INFO
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync{
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync uint32_t u32Magic; /**< CVPDB70INFO_SIGNATURE. */
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync RTUUID PdbUuid;
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync uint32_t uAge;
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync uint8_t szPdbFilename[4];
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync} CVPDB70INFO;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#pragma pack()
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncAssertCompileMemberOffset(CVPDB70INFO, PdbUuid, 4);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncAssertCompileMemberOffset(CVPDB70INFO, uAge, 4 + 16);
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync/** Pointer to in executable image PDB v7.0 info. */
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsynctypedef CVPDB70INFO *PCVPDB70INFO;
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsync/** Pointer to read only in executable image PDB v7.0 info. */
c10a6f0c7041e4d1ee50ad38425aab9d43c55522vboxsynctypedef CVPDB70INFO const *PCCVPDB70INFO;
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync/** The CVPDB70INFO magic value. */
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync#define CVPDB70INFO_MAGIC RT_MAKE_U32_FROM_U8('R','S','D','S')
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync/** @} */
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync#endif
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync