When using remote debugging - which is the JDK that affects the instruction-to-line number association ? The debuggee or the debugger's one ?
I can run idea on 131_03 but now have to keep running an app on _02 Thanks, Edo > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED]] On Behalf Of Eugene Zhuravlev > Sent: 12 April 2002 17:57 > To: [EMAIL PROTECTED] > Subject: Re: [Eap-list] debugger's MT bug with samples attached > > > Yes, it is recommended to use 1.3.1_03. Sun claims they have > fixed the problem with wrong instruction-to-line number > association. The effect of this javac bug was that debugger > was showing the execution point at the wrong line for some > "if: statements and "catch" blocks. I would also recommend to > run the debuggee under the classic VM. This slows application > startup, but stepping is much faster than when using HotSpot. > > Best regards, > Eugene Zhuravlev > JetBrains, Inc / IntelliJ Software, http://www.intellij.com/ > "Develop with pleasure!" > > ----- Original Message ----- > From: "Jon Steelman" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Friday, April 12, 2002 20:43 > Subject: Re: [Eap-list] debugger's MT bug with samples attached > > > > Can IntelliJ let us know if they recommend using Ariadna > with 1.3.1_03 > > instead of 1.3.1_02? > > > > Thanks, > > Jon > > > > Robert S. Sfeir wrote: > > > > >Anton, there have been a few bug fixes since the JDK > you're using. > > >You really should use JDK 1.3.1_03. I don;t know how much > of a diff > > >it will make, but it's worth a shot. I've had a few problems with > > >applets with previous versions to 1.3.1_03 and it was worth the > > >switch. It seems that IDEA behaves better with it too. > > > > > >R > > >On Fri, 2002-04-12 at 08:46, Anton Shahu wrote: > > > > > >>The debugger has a hard time switching contexts and > apparently loses > > >>track if the next breakpoint happens in another thread as > shown in > > >>the two attached files. > > >> > > >>Place a breakpoint at respectively readValues and writeValues of > > >>RWTest and debug RWTest. The first times the debugger > will stop at > > >>readValues but then the next breakpoint seems never to be > reached. > > >>The CPU is at almost 0% and the JVM has clearly stopped, but Idea > > >>doesn't know this... > > >> > > >>The same thing works like clockwork with Bugseeker. JDK used > > >> > > >>java -version > > >>java version "1.3.1" > > >>Java(TM) 2 Runtime Environment, Standard Edition (build > 1.3.1-b24) > > >>Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode) > > >> > > >>socket or memory have same effect, but chosing classic seems to > > >>solve the issue. The help file says otherwise... > > >> > > >>Idea build 616 > > >> > > >>Anton > > >> > > >>_________________________________________________________________ > > >>Get your FREE download of MSN Explorer at > http://explorer.msn.com/intl.asp. > > >>---- > > >> > > > > > >>public class RWLock { > > >> > > >> private int readers; > > >> private int writersWaiting; > > >> > > >> private boolean writingInProgress; > > >> private int maxWritersWaiting = 1; > > >> > > >> RWLock(int maxWW) { > > >> maxWritersWaiting = maxWW; > > >> } > > >> > > >> synchronized public void getReadLock() { > > >> while (writingInProgress | (writersWaiting >= > maxWritersWaiting)) { > > >> try { > > >> wait(); > > >> } catch (InterruptedException ie) { > > >> } > > >> } > > >> readers++; > > >> } > > >> > > >> synchronized public void releaseReadLock() { > > >> readers--; > > >> if ((readers == 0) & (writersWaiting > 0)) { > > >> notify(); > > >> } > > >> } > > >> > > >> synchronized public void getWriteLock() { > > >> writersWaiting++; > > >> while ((readers > 0) | writingInProgress) { > > >> try { > > >> wait(); > > >> } catch (InterruptedException ie) { > > >> } > > >> } > > >> writersWaiting--; > > >> writingInProgress = true; > > >> } > > >> > > >> synchronized public void releaseWriteLock() { > > >> writingInProgress = false; > > >> notifyAll(); > > >> } > > >> > > >> public int getReaders() { > > >> return readers; > > >> } > > >> > > >> public int getWaitingWriters() { > > >> return writersWaiting; > > >> } > > >> > > >>} > > >> > > >>/* > > >>* $Log:$ > > >>*/ > > >>---- > > >> > > > > > >>public class RWTest { > > >> int arr[]; > > >> String name; > > >> RWLock lock; > > >> > > >> public static void main(String args[]) { > > >> RWTest rwtest = new RWTest(); > > >> } > > >> > > >> > > >> RWTest() { > > >> lock = new RWLock(3); > > >> arr = new int[3]; > > >> name = "name"; > > >> for (int i = 0; i < 20; i++) > > >> (new ReaderThread()).start(); > > >> > > >> for (int j = 0; j < 4; j++) > > >> (new WriterThread()).start(); > > >> } > > >> > > >> public void readValues() { > > >> lock.getReadLock(); > > >> System.out.println("Read Lock obtained by " + > > >>Thread.currentThread().getName()); > > >> System.out.println(" >>>> Readers active = " + > > >>lock.getReaders()); > > >> System.out.println(" >>>> Writers waiting = " + > > >>lock.getWaitingWriters()); > > >> for (int i = 0; i < arr.length; i++) > > >> System.out.print(arr[i] + " "); > > >> System.out.println(name); > > >>//PLACE BREAKPOINT IN NEXT LINE > > >> System.out.println("Read Lock to be released by " + > > >>Thread.currentThread().getName()); > > >> lock.releaseReadLock(); > > >> } > > >> > > >> public void writeValues() { > > >> lock.getWriteLock(); > > >> System.out.println("Write Lock obtained by " + > > >>Thread.currentThread().getName()); > > >> int value = (int) (Math.random() * 100); > > >> for (int i = 0; i < arr.length; i++) > > >> arr[i] = value; > > >> name = "" + value; > > >>//PLACE BREAKPOINT IN NEXT LINE > > >> System.out.println("Write Lock to be released by " + > > >>Thread.currentThread().getName()); > > >> lock.releaseWriteLock(); > > >> } > > >> > > >> class ReaderThread extends Thread { > > >> public void run() { > > >> while (true) { > > >> try { > > >> readValues(); > > >> Thread.sleep((int) (Math.random() * 50)); > > >> } catch (Exception e) { > > >> } > > >> } > > >> } > > >> } > > >> > > >> class WriterThread extends Thread { > > >> public void run() { > > >> while (true) { > > >> try { > > >> writeValues(); > > >> Thread.sleep((int) (Math.random() * 100)); > > >> } catch (Exception e) { > > >> } > > >> } > > >> } > > >> } > > >>} > > >> > > > > > > > > > _______________________________________________ > Eap-list mailing list > [EMAIL PROTECTED] > http://www.intellij.com/mailman/listinfo/eap-> list > _______________________________________________ Eap-list mailing list [EMAIL PROTECTED] http://www.intellij.com/mailman/listinfo/eap-list
