[RFC] Introduce BreakAtCompileId

Nils Eliasson nils.eliasson at oracle.com
Wed Nov 18 09:59:07 UTC 2020


Hi,

There are already some flags that control this.

 From globals.hpp:

develop(intx, CIBreakAtOSR, -1,
           "The id of osr compilation to break at")

   develop(intx, CIBreakAt, -1,
           "The id of compilation to break at")


Best regards,
Nils Eliasson

On 2020-11-09 16:48, Leslie Zhai wrote:
> Hi,
>
> OptoBreakpoint is very useful for debugging C2 compiler when porting 
> some cpu for jdk8u. It is able to `b breakpoint` for breaking at the 
> prolog about for example Compile_id = 2. But when fixed several bugs 
> for C2, it needs to press `c` times and times again for reaching the 
> proper Compile_id.
>
> I `grep` Opto related options.  But there is no such one to break at 
> the precise Compile_id.  Please teach me if there was :)
>
> So here comes BreakAtCompileId. It is able to break at the precise 
> Compile_id which you want to debug.
>
>
> gdb -ex=r --args $JAVA -Xcomp -XX:+PrintCompilation 
> -XX:BreakAtCompileId=430  -version
>
>
> (gdb) b breakpoint
> Breakpoint 1 at 0x7ffff633b0d0: breakpoint. (133 locations)
>
>    6333  433       3 java.util.ImmutableCollections$List12::get (35 
> bytes)   made not entrant
>
> Thread 2 "java" hit Breakpoint 1, 0x00007ffff711f410 in 
> os::breakpoint() () at /home/zhaixiang/projects
> 452         if (pslash != NULL) {
> (gdb) si
> 0x00007fffe01b46d1 in ?? ()
> (gdb) x/22i $pc-44
>    0x7fffe01b46a5:      shl    $0x3,%edx
>    0x7fffe01b46a8:      movabs $0x800000000,%r11
>    0x7fffe01b46b2:      add    %r11,%r10
>    0x7fffe01b46b5:      cmp    %r10,%rax
>    0x7fffe01b46b8:      jne    0x7fffd87cf920
>    0x7fffe01b46be:      nop
>    0x7fffe01b46bf:      nop
>    0x7fffe01b46c0:      mov    %eax,-0x16000(%rsp)
>    0x7fffe01b46c7:      push   %rbp
>    0x7fffe01b46c8:      sub    $0x10,%rsp
>    0x7fffe01b46cc:      callq  0x7ffff711f410 <_ZN2os10breakpointEv>
> => 0x7fffe01b46d1:      mov    0xc(%rsi),%r11d
>    0x7fffe01b46d5:      mov    0x10(%rsi),%r10d
>    0x7fffe01b46d9:      cmp    %r11d,%r10d
>    0x7fffe01b46dc:      je     0x7fffe01b46f6
>    0x7fffe01b46de:      mov    $0x1,%eax
>    0x7fffe01b46e3:      add    $0x10,%rsp
>    0x7fffe01b46e7:      pop    %rbp
>    0x7fffe01b46e8:      cmp    0x128(%r15),%rsp
>    0x7fffe01b46ef:      ja     0x7fffe01b46fa
>    0x7fffe01b46f5:      retq
>    0x7fffe01b46f6:      xor    %eax,%eax
> (gdb) i r
> rax            0x7fffe01b46c0      140736953272000
> rbx            0x8004699e8         34364365288
> rcx            0x1                 1
> rdx            0x7fffc5068980      140736498928000
> rsi            0x62a020b40         26474580800
> rdi            0x1                 1
> rbp            0x7ffff5a668d0      0x7ffff5a668d0
> rsp            0x7ffff5a66290      0x7ffff5a66290
> r8             0x80008eeb0         34360323760
> r9             0x7ffb4cf60         34354810720
> r10            0x800012488         34359813256
> r11            0x800000000         34359738368
> r12            0x0                 0
> r13            0x7292dae5          1922226917
> r14            0x62a020818         26474579992
> r15            0x7ffff00271e0      140737220080096
> rip            0x7fffe01b46d1      0x7fffe01b46d1
> eflags         0x206               [ PF IF ]
> cs             0x33                51
> ss             0x2b                43
> ds             0x0                 0
> es             0x0                 0
> fs             0x0                 0
> gs             0x0                 0
>
>
> Thanks,
> Leslie Zhai
>



More information about the jdk-dev mailing list