Hi Alex,

Can you put "expected statement printed by jdb" in a static final since it is used in 2 places? Otherwise it looks good. I don't need to see an updated webrev.

thanks,

Chris

On 9/20/18 10:24 AM, Alex Menkov wrote:
Looks like JDK-4660756 fixed line number, but didn't fix source.
I filled JDK-8210927 for this.

New webrev:
http://cr.openjdk.java.net/~amenkov/sh2java/step4/webrev.02/
changes (vs ver .01):
- updated comment in StringConvertTest.java about arrays;
- RedefineTTYLineNumber was updated to verify line numbers,
  verification of the source at breakpoint is added, but commented out (should be uncommented by fix for JDK-8210927)

--alex

On 09/14/2018 18:09, Chris Plummer wrote:
Hmm. I thought that's what the original bug was addressing.

   27  * @summary TTY: Need to clear source cache after doing a redefine class

Chris

On 9/14/18 4:37 PM, Alex Menkov wrote:
Looks like only line numbers are reported correctly, but the content of the line content if not correct :)

[jdb] Breakpoint hit: "thread=main", RedefineTTYLineNumberTarg.A(), line=47 bci=0
[jdb] 47            System.out.println("in A, about to call B");
[jdb]
[jdb] main[1]

[jdb] Breakpoint hit: "thread=main", RedefineTTYLineNumberTarg.A(), line=46 bci=0
[jdb] 46        public void A() {
[jdb]
[jdb] main[1]

"public void A()" is a line 46 in the original file

--alex

On 09/14/2018 15:32, Chris Plummer wrote:
I think checking the output after the second breakpoint would be a good idea. However, rather than checking the line number, maybe just check the contents of the line, which should be included in the breakpoint event output.

Chris

On 9/14/18 3:23 PM, Alex Menkov wrote:
Hi Chris,

The file history does not contain any info about line number dependency.
I'll remove "11 before, 10 afterward" comment.
Actually the test is not clear to me.
Accordingly the test description jdb report obsolete line number in the case, but the test does not verify its correctness, but just checks _debuggee_ (not jdb) output for absence of "Internal exception". The original bug is ancient, so it's hard to say if the test is correct or not. I can add extra testing - extract reported line numbers (by using regexp "line=(\d+)\b") and verify that 2st breakpoint is reported with the expected line number (1 less than line of the 1st breakpoint).
Thoughts?

--alex

On 09/14/2018 14:27, Chris Plummer wrote:
Hi Alex,

Just one issue I see. For RedefineTTYLineNumber.java, the original test used to have this comment, which your removed:

   52   // line number sensitive!!! Next line must be line 10.

It's not clear to me why this test was ever line number sensitive, and whether you removed this sensitivity, or it just never existed. In any case, you left in the following comment, which maybe should also be removed:

   47         System.out.println("in A, about to call B"); // 11 before, 10 afterward

Also, the println output from A() does not seem to match what the test is doing. There is no call to B():

   46     public void A() {
   47         System.out.println("in A, about to call B"); // 11 before, 10 afterward
   48         System.out.println("out from B");
   49     }

Maybe that's some bit rot. My understanding of the point of the test is while at the breakpoint at the start of A(), a redefine is done that deletes a line above this point, and jdi needs to make the appropriate adjustment of the current breakpoint line number. So calling B() does not play a roll in this, but perhaps it did a one point but the call was removed.

Also, I don't see any indication of line number sensitivity here, but once again, maybe this is a bit rot issue and at one point it was line number sensitive.

thanks,

Chris

On 9/14/18 12:59 PM, Alex Menkov wrote:
Hi all,

please review fix for
https://bugs.openjdk.java.net/browse/JDK-8210760
webrev:
http://cr.openjdk.java.net/~amenkov/sh2java/step4/webrev.01/

--alex









Reply via email to