원클릭으로
analyze-jitc-log
Analyze jitc.log to find JIT compilation issues — fragment gaps, branch overflow, bad codegen
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyze jitc.log to find JIT compilation issues — fragment gaps, branch overflow, bad codegen
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Check that aarch64 JIT interpreter functions match generic CPU behavior
Analyze a kernel Oops from the printk buffer in a PearPC memory dump
Analyze the JIT dispatch trace to diagnose boot stalls or crashes
Compare memory regions between generic and JIT memory dumps to find divergences
Extract and display the Linux kernel printk ring buffer from a PearPC memory dump
| name | analyze-jitc-log |
| description | Analyze jitc.log to find JIT compilation issues — fragment gaps, branch overflow, bad codegen |
| allowed-tools | Bash, Read, Grep |
| argument-hint | ["log-file"] |
The jitc.log file contains all translated PPC→AArch64 code. Each entry shows:
Read the END of the log first — the most recently compiled code is at the bottom:
tail -100 ${ARGUMENTS:-jitc.log}
Check for fragment gaps — look for large jumps in native addresses between consecutive instructions. Two consecutive AArch64 instructions should be 4 bytes apart. If the gap is >512 bytes, a new fragment was allocated:
python3 -c "
import re, sys
lines = open('${ARGUMENTS:-jitc.log}').readlines()
prev_addr = None
for line in lines:
m = re.match(r'\s+([0-9a-f]+)\s+[0-9a-f]+\s+', line)
if m and len(m.group(1)) > 6: # native address (long hex)
addr = int(m.group(1), 16)
if prev_addr and addr - prev_addr > 512:
print(f'FRAGMENT GAP: {prev_addr:x} -> {addr:x} (distance: {addr - prev_addr} bytes)')
prev_addr = addr
"
Check for conditional branch overflow risk — any B.cc (0x54xxxxxx) instruction followed by a fragment gap means the conditional branch might not reach its target. B.cc range is ±1MB (±0x100000):
54 prefix instructions near fragment boundariesCheck for unresolved fixups — 14000000 is B #0 (branch to self), which means a fixup was never resolved:
grep '14000000' ${ARGUMENTS:-jitc.log}
Check for GEN_INTERPRET overhead — look for the pattern: store current_opc, compute pc from base+offset, store pc, store npc, mov x0 cpu, blr interpreter. Count how many bytes each PPC instruction takes in native code.
Identify the PPC page being compiled — the first column shows PPC offsets within the page. The current_code_base (stored at CPU offset 904) gives the page base EA.