f72c52a48a6974c12d99a7061c1ebfd0518eb350
[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 static final int E_ERROR                         = (1<<0L);
69         public static final int E_WARNING                       = (1<<1L);
70         public static final int E_PARSE                         = (1<<2L);
71         public static final int E_NOTICE                        = (1<<3L);
72         public static final int E_CORE_ERROR            = (1<<4L);
73         public static final int E_CORE_WARNING          = (1<<5L);
74         public static final int E_COMPILE_ERROR         = (1<<6L);
75         public static final int E_COMPILE_WARNING       = (1<<7L);
76         public static final int E_USER_ERROR            = (1<<8L);
77         public static final int E_USER_WARNING          = (1<<9L);
78         public static final int E_USER_NOTICE           = (1<<10L);
79
80         public PHPDBGBase() {
81         }
82
83         public static void copyCharsTo(char[] to, char[] from, int bytes, int tostart) {
84                 int i;
85                 for(i=0; i < bytes; i++) to[i + tostart]= from[i];
86         }
87
88         public static void copyChars(char[] to, char[] from, int bytes) {
89                 copyCharsTo(to, from, bytes, 0);
90         }
91
92         public static int Char4ToInt(char[] ch, int startPos) {
93                 int pos=startPos, ret=0;
94                 
95                 ret += CharToInt(ch[pos++]) << 24;
96                 ret += CharToInt(ch[pos++]) << 16;
97                 ret += CharToInt(ch[pos++]) << 8;
98                 ret += CharToInt(ch[pos++]) << 0;
99                 return ret;
100         }
101
102         public static int CharToInt(char ch) {
103                 return (int) (ch & 0x00FF);
104         }
105
106         public static char[] IntToChar4(int num) {
107                 char[] ret= new char[4];
108                 
109                 ret[0] = (char) ((num >> 24) & 0x00FF);
110                 ret[1] = (char) ((num >> 16) & 0x00FF);
111                 ret[2] = (char) ((num >> 8) & 0x00FF);
112                 ret[3] = (char) ((num >> 0) & 0x00FF);
113
114                 return ret;
115         }
116
117         public static String CharArrayToString(char[] cha) {
118                 String ret= new String();
119                 int i, p;
120                 
121                 for(i=0; i < cha.length; i++) {
122                         p= (int) cha[i];
123                         ret= ret + "(" + String.valueOf(p) + ") ";
124                 }
125                 return ret;
126         }
127         
128         public static byte[] CharArrayToByteArray(char[] cha) {
129                 byte[] ret= new byte[cha.length];
130                 int i;
131                 
132                 for(i=0; i < cha.length; i++) {
133                         ret[i]= (byte) cha[i];
134                 }
135                 return ret;
136         }
137 }