home *** CD-ROM | disk | FTP | other *** search
- import java.io.DataInputStream;
- import java.io.IOException;
-
- class DebugProcessThread extends Thread {
- private DebugGUI output;
- private DataInputStream dis;
-
- public DebugProcessThread(String var1, DebugGUI var2, DataInputStream var3) {
- super(var1);
- this.output = var2;
- this.dis = var3;
- }
-
- private void output(int var1) {
- char[] var2 = new char[]{(char)var1, '\u0000'};
- String var3 = new String(var2);
- this.output.output(var3);
- }
-
- public void run() {
- this.command(((Thread)this).getName());
- }
-
- private boolean command(String var1) {
- String var2;
- try {
- while((var2 = this.dis.readLine()) != null) {
- if (this.hasPrompt(var2)) {
- var2 = var2.substring(var2.indexOf(93) + 2);
- }
-
- if ((var2.indexOf(49) == 0 || var2.indexOf(50) == 0 || var2.indexOf(51) == 0 || var2.indexOf(52) == 0 || var2.indexOf(53) == 0 || var2.indexOf(54) == 0 || var2.indexOf(55) == 0 || var2.indexOf(56) == 0 || var2.indexOf(57) == 0) && !this.isThread(var2)) {
- this.output.listing(var2 + "\n");
- this.output.sourceStart(new Integer(var2.substring(0, var2.indexOf("\t", 0)).trim()));
- } else if (var2.startsWith(" ")) {
- this.output.output(var2 + "\n");
- } else if (var2.startsWith(" ") && var2.indexOf(91) != 2) {
- this.output.varList(var2 + "\n");
- if (var2.trim().startsWith("this = ")) {
- int var3 = var2.indexOf(91);
- if (var3 == -1) {
- var3 = var2.indexOf(64);
- }
-
- if (var3 == -1) {
- var3 = var2.indexOf(44);
- }
-
- if (var3 == -1) {
- var3 = var2.indexOf(32);
- }
-
- this.output.setClassName(var2.substring(9, var3));
- }
- } else if (!var2.startsWith("Local variables:") && !var2.startsWith("Method arguments:")) {
- if (var2.startsWith("Breakpoint hit:")) {
- this.output.doList();
- this.output.doVariables();
- } else if (!var2.startsWith("Breakpoint set at") && !var2.startsWith("Breakpoint set in")) {
- if (var2.startsWith("Initializing jdb...")) {
- this.output.clearAllBreakpoints(false);
- this.output.output(var2 + "\n");
- } else {
- this.output.output(var2 + "\n");
- }
- } else {
- this.output.addBreakPoint(var2.substring(var2.indexOf("set") + 7));
- this.output.updateBreakList();
- }
- }
- }
- } catch (IOException var4) {
- System.out.println(BrowserOptions.messages.getString("IOExceptio"));
- }
-
- return true;
- }
-
- private boolean isThread(String var1) {
- byte[] var2 = var1.getBytes();
-
- int var3;
- for(var3 = 0; var3 < var2.length && Character.isDigit((char)var2[var3]); ++var3) {
- }
-
- return var2[var3] == 46;
- }
-
- boolean hasPrompt(String var1) {
- char[] var2 = var1.toCharArray();
- if (var1.startsWith("thread ")) {
- var1 = var1.substring(7);
- }
-
- boolean var3 = false;
- boolean var4 = false;
- boolean var5 = false;
-
- for(int var6 = 0; var6 < var2.length; ++var6) {
- if (Character.isDigit(var2[var6]) && var5) {
- var4 = true;
- } else if (Character.isLetterOrDigit(var2[var6])) {
- var3 = true;
- } else if (var2[var6] != '.' && var2[var6] != '-') {
- if (var2[var6] == '[') {
- var5 = true;
- } else {
- if (var2[var6] != ']') {
- return false;
- }
-
- if (var3 && var4 && var5) {
- return true;
- }
- }
- }
- }
-
- return false;
- }
- }
-