~ubuntu-branches/ubuntu/trusty/virtualbox/trusty-proposed

« back to all changes in this revision

Viewing changes to src/VBox/Disassembler/DisasmTest.cpp

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2013-03-07 16:38:36 UTC
  • mfrom: (1.1.13) (3.1.20 experimental)
  • Revision ID: package-import@ubuntu.com-20130307163836-p93jpbgx39tp3gb4
Tags: 4.2.8-dfsg-0ubuntu1
* New upstream release. (Closes: #691148)
  - Fixes compatibility with kernel 3.8. (Closes: #700823; LP: #1101867)
* Switch to my @debian.org email address.
* Move package to contrib as virtualbox 4.2 needs a non-free compiler to
  build the BIOS.
* Build-depend on libdevmapper-dev.
* Refresh patches.
  - Drop 36-fix-ftbfs-xserver-112.patch, cve-2012-3221.patch,
    CVE-2013-0420.patch 37-kcompat-3.6.patch and 38-kcompat-3.7.patch.
* Drop all virtualbox-ose transitional packages.
* Drop the virtualbox-fuse package as vdfuse fails to build with
  virtualbox 4.2.
* Update install files and VBox.sh.
* Bump required kbuild version to 0.1.9998svn2577.
* Fix path to VBoxCreateUSBNode.sh in virtualbox.postinst. (Closes: #700479)
* Add an init script to virtuabox-guest-x11 which loads the vboxvideo
  kernel module. The X Server 1.13 doesn't load it anymore. (Closes: #686994)
* Update man pages. (Closes: #680053)
* Add 36-python-multiarch.patch from Rico Tzschichholz to fix detection of
  python in multiarch paths using pkg-config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/** @file
2
 
 *
3
 
 * VBox disassembler:
4
 
 * Test application
5
 
 */
6
 
 
7
 
/*
8
 
 * Copyright (C) 2006-2007 Oracle Corporation
9
 
 *
10
 
 * This file is part of VirtualBox Open Source Edition (OSE), as
11
 
 * available from http://www.virtualbox.org. This file is free software;
12
 
 * you can redistribute it and/or modify it under the terms of the GNU
13
 
 * General Public License (GPL) as published by the Free Software
14
 
 * Foundation, in version 2 as it comes in the "COPYING" file of the
15
 
 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16
 
 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17
 
 */
18
 
 
19
 
/*******************************************************************************
20
 
*   Header Files                                                               *
21
 
*******************************************************************************/
22
 
#include <VBox/dis.h>
23
 
#include <VBox/err.h>
24
 
#include <stdio.h>
25
 
#include <iprt/string.h>
26
 
#include <iprt/asm.h>
27
 
 
28
 
DECLASM(int) TestProc();
29
 
#ifndef RT_OS_OS2
30
 
DECLASM(int) TestProc64();
31
 
#endif
32
 
//uint8_t aCode16[] = { 0x66, 0x67, 0x89, 0x07 };
33
 
 
34
 
int main(int argc, char **argv)
35
 
{
36
 
    printf("VBox Disassembler Test\n");
37
 
    if (argc != 1)
38
 
    {
39
 
        //printf("DisasmBlock on printf:\n");
40
 
        //DisasmBlock((uint8_t *)printf, 256);
41
 
    }
42
 
    else
43
 
    {
44
 
        RTUINTPTR pInstr = (uintptr_t)TestProc;
45
 
 
46
 
        for (int i=0;i<50;i++)
47
 
        {
48
 
            unsigned    cb;
49
 
            DISCPUSTATE cpu;
50
 
            char         szOutput[256];
51
 
 
52
 
            memset(&cpu, 0, sizeof(cpu));
53
 
            cpu.mode = CPUMODE_32BIT;
54
 
            if (RT_SUCCESS(DISInstr(&cpu, pInstr, 0, &cb, szOutput)))
55
 
            {
56
 
                printf("%s", szOutput);
57
 
            }
58
 
            else
59
 
            {
60
 
                printf("DISOne failed!\n");
61
 
                return 1;
62
 
            }
63
 
            pInstr += cb;
64
 
        }
65
 
 
66
 
#ifndef RT_OS_OS2
67
 
        printf("\n64 bits disassembly\n");
68
 
        pInstr = (uintptr_t)TestProc64;
69
 
 
70
 
////__debugbreak();
71
 
        for (int i=0;i<50;i++)
72
 
        {
73
 
            unsigned    cb;
74
 
            DISCPUSTATE cpu;
75
 
            char         szOutput[256];
76
 
 
77
 
            memset(&cpu, 0, sizeof(cpu));
78
 
            cpu.mode = CPUMODE_64BIT;
79
 
            if (RT_SUCCESS(DISInstr(&cpu, pInstr, 0, &cb, szOutput)))
80
 
                printf("%s", szOutput);
81
 
            else
82
 
            {
83
 
                printf("DISOne failed!\n");
84
 
                return 1;
85
 
            }
86
 
            pInstr += cb;
87
 
        }
88
 
#endif
89
 
    }
90
 
    return 0;
91
 
}
92