[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