a4ff01fef1acb4fa7f578ccca507b3985ece9a6c
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.core / src / net / sourceforge / phpdt / internal / debug / core / PHPDBGBase.java
1 /**********************************************************************
2 Copyright (c) 2000, 2002 IBM Corp. and others.
3 All rights reserved. This program and the accompanying materials
4 are made available under the terms of the Common Public License v1.0
5 which accompanies this distribution, and is available at
6 http://www.eclipse.org/legal/cpl-v10.html
7
8 Contributors:
9         Vicente Fernando - www.alfersoft.com.ar - Initial implementation
10 **********************************************************************/
11 package net.sourceforge.phpdt.internal.debug.core;
12
13 public class PHPDBGBase {
14
15         // Constants
16         // php-engine commands/events
17         public static final int DBGC_REPLY                      = 0x0000;               /* reply to previous DBGA_REQUEST request */
18         public static final int DBGC_STARTUP            = 0x0001;               /* script startup */
19         public static final int DBGC_END                        = 0x0002;               /* script done */
20         public static final int DBGC_BREAKPOINT         = 0x0003;               /* user definded breakpoint occured */
21         public static final int DBGC_STEPINTO_DONE      = 0x0004;               /* step to the next statement is completed */
22         public static final int DBGC_STEPOVER_DONE      = 0x0005;               /* step to the next statement is completed */
23         public static final int DBGC_STEPOUT_DONE       = 0x0006;               /* step to the next statement is completed */
24         public static final int DBGC_EMBEDDED_BREAK     = 0x0007;               /* breakpoint caused by DebugBreak() function */
25         public static final int DBGC_ERROR                      = 0x0010;               /* error occured */
26         public static final int DBGC_LOG                        = 0x0011;               /* logging support */
27         public static final int DBGC_SID                        = 0x0012;               /* send SID */
28         public static final int DBGC_PAUSE                      = 0x0013;               /* pause current session as soon as possible */
29
30         public static final char[] DBGA_CONTINUE                = IntToChar4(0x8001);   /* php should continue run */
31         public static final char[] DBGA_STOP                    = IntToChar4(0x8002);
32         public static final char[] DBGA_STEPINTO                = IntToChar4(0x8003);
33         public static final char[] DBGA_STEPOVER                = IntToChar4(0x8004);
34         public static final char[] DBGA_STEPOUT                 = IntToChar4(0x8005);
35         public static final char[] DBGA_IGNORE                  = IntToChar4(0x8006);
36         public static final char[] DBGA_REQUEST                 = IntToChar4(0x8010);   /* debugger client requests some information from PHP engine */
37         
38         public static final int FRAME_STACK                             = 100000;       /* "call:stack" - e.g. backtrace */
39         public static final int FRAME_SOURCE                    = 100100;       /* source text */
40         public static final int FRAME_SRC_TREE                  = 100200;       /* tree of source files */
41         public static final int FRAME_RAWDATA                   = 100300;       /* raw data or string */
42         public static final int FRAME_ERROR                             = 100400;       /* error notification */
43         public static final int FRAME_EVAL                              = 100500;       /* evaluating/watching */
44         public static final int FRAME_BPS                               = 100600;       /* set/remove breakpoint */
45         public static final int FRAME_BPL                               = 100700;       /* breakpoint(s) request = get the list */
46         public static final int FRAME_VER                               = 100800;       /* version request */
47         public static final int FRAME_SID                               = 100900;       /* session id info*/
48         public static final int FRAME_SRCLINESINFO              = 101000;       /* source lines info */
49         public static final int FRAME_SRCCTXINFO                = 101100;       /* source contexts info */
50         public static final int FRAME_LOG                               = 101200;       /* logging */
51         public static final int FRAME_PROF                              = 101300;       /* profiler */
52         public static final int FRAME_PROF_C                    = 101400;       /* profiler counter/accuracy */
53         public static final int FRAME_SET_OPT                   = 101500;       /* set/update options */
54
55         public static final char[] DBGSYNC                              = { 0, 0, (char) 89, (char) 83};        /* DBG syncronization chars */
56
57         // Session Types
58         public static final int DBG_COMPAT              = 0x0001;
59         public static final int DBG_JIT                 = 0x0002;
60         public static final int DBG_REQ                 = 0x0003;
61         public static final int DBG_EMB                 = 0x0004;
62         
63         public static final int BPS_DELETED             = 0;
64         public static final int BPS_DISABLED    = 1;
65         public static final int BPS_ENABLED             = 2;
66         public static final int BPS_UNRESOLVED  = 0x100;
67
68         public PHPDBGBase() {
69         }
70
71         public static void copyCharsTo(char[] to, char[] from, int bytes, int tostart) {
72                 int i;
73                 for(i=0; i < bytes; i++) to[i + tostart]= from[i];
74         }
75
76         public static void copyChars(char[] to, char[] from, int bytes) {
77                 copyCharsTo(to, from, bytes, 0);
78         }
79
80         public static int Char4ToInt(char[] ch, int startPos) {
81                 int pos=startPos, ret=0;
82                 
83                 ret += CharToInt(ch[pos++]) << 24;
84                 ret += CharToInt(ch[pos++]) << 16;
85                 ret += CharToInt(ch[pos++]) << 8;
86                 ret += CharToInt(ch[pos++]) << 0;
87                 return ret;
88         }
89
90         public static int CharToInt(char ch) {
91                 return (int) (ch & 0x00FF);
92         }
93
94         public static char[] IntToChar4(int num) {
95                 char[] ret= new char[4];
96                 
97                 ret[0] = (char) ((num >> 24) & 0x00FF);
98                 ret[1] = (char) ((num >> 16) & 0x00FF);
99                 ret[2] = (char) ((num >> 8) & 0x00FF);
100                 ret[3] = (char) ((num >> 0) & 0x00FF);
101
102                 return ret;
103         }
104
105         public static String CharArrayToString(char[] cha) {
106                 String ret= new String();
107                 int i, p;
108                 
109                 for(i=0; i < cha.length; i++) {
110                         p= (int) cha[i];
111                         ret= ret + "(" + String.valueOf(p) + ") ";
112                 }
113                 return ret;
114         }
115         
116         public static byte[] CharArrayToByteArray(char[] cha) {
117                 byte[] ret= new byte[cha.length];
118                 int i;
119                 
120                 for(i=0; i < cha.length; i++) {
121                         ret[i]= (byte) cha[i];
122                 }
123                 return ret;
124         }
125 }