From 50640df3c04fbcf0c59873e18ddedba40e610c11 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Thu, 19 Jan 2012 22:13:36 -0500 Subject: [PATCH] Bug 369168: threadOSId is not extracted for non-pthread programs --- .../cdt/dsf/mi/service/command/output/MIThread.java | 8 ++++++++ .../cdt/dsf/mi/service/command/output/MIThreadTests.java | 1 + 2 files changed, 9 insertions(+) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThread.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThread.java index f718950a327..caf4351b5e6 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThread.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThread.java @@ -124,6 +124,7 @@ public class MIThread { private static Pattern fgOsIdPattern1 = Pattern.compile("([Tt][Hh][Rr][Ee][Aa][Dd]\\s*)(0x[0-9a-fA-F]+|-?\\d+)(\\s*\\([Ll][Ww][Pp]\\s*)(\\d*)", 0); //$NON-NLS-1$ private static Pattern fgOsIdPattern2 = Pattern.compile("[Tt][Hh][Rr][Ee][Aa][Dd]\\s*\\d+\\.(\\d+)", 0); //$NON-NLS-1$ private static Pattern fgOsIdPattern3 = Pattern.compile("[Tt][Hh][Rr][Ee][Aa][Dd]\\s*(\\S+)", 0); //$NON-NLS-1$ + private static Pattern fgOsIdPattern4 = Pattern.compile("[Pp][Rr][Oo][Cc][Ee][Ss][Ss]\\s*(\\S+)", 0); //$NON-NLS-1$ static String parseOsId(String str) { // General format: @@ -132,6 +133,8 @@ public class MIThread { // "Thread 162.32942" // ^^^^^ // "thread abc123" + // + // "process 12345" => Linux without pthread. The process as one thread, the process thread. // ^^^^^^ // PLEASE UPDATE MIThreadTests.java IF YOU TWEAK THIS CODE @@ -150,6 +153,11 @@ public class MIThread { return matcher.group(1); } + matcher = fgOsIdPattern4.matcher(str); + if (matcher.find()) { + return matcher.group(1); + } + return null; } diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadTests.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadTests.java index d0bde2e256c..e057709132f 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadTests.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadTests.java @@ -12,6 +12,7 @@ public class MIThreadTests { assertEquals("abc123", MIThread.parseOsId("Thread abc123")); assertEquals("abc123", MIThread.parseOsId("thread abc123")); assertEquals("abc123", MIThread.parseOsId("THREAD abc123")); + assertEquals("abc123", MIThread.parseOsId("process abc123")); } @Test