You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add resolveNativeFrameForWalkVM helper to profiler.h/cpp
- Patch walkVM to use remote symbolication at native frame resolution point
- Remove broken applyRemoteSymbolicationToVMFrames function
- Add lock_index parameter to all walkVM signatures via patching.gradle
- Update stackWalker_dd.h wrappers to pass lock_index
- Remove dead non-const operator[] from codeCache.h
- Add alignment check for ELF program headers in symbols_linux_dd.cpp
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
replace: "// Check if remote symbolication is enabled\n Profiler::NativeFrameResolution resolution = profiler->resolveNativeFrameForWalkVM((uintptr_t)pc, lock_index);\n if (resolution.is_marked) {\n // This is a marked C++ interpreter frame, terminate scan\n break;\n }\n const char* method_name = (const char*)resolution.method_id;\n int frame_bci = resolution.bci;",
257
+
idempotent_check: "resolveNativeFrameForWalkVM"
258
+
],
259
+
[
260
+
type: "expression_replace",
261
+
name: "Update fillFrame call to use dynamic BCI",
262
+
description: "Updates the fillFrame call to use the dynamic frame_bci value determined by remote symbolication mode",
replace: "\$1\n\n// Overload for RemoteFrameInfo* (passed as void* to support both char* and RemoteFrameInfo*)\nstatic inline void fillFrame(ASGCT_CallFrame& frame, int bci, void* method_id_ptr) {\n frame.bci = bci;\n frame.method_id = (jmethodID)method_id_ptr;\n}",
273
+
idempotent_check: "void fillFrame\\(ASGCT_CallFrame& frame, int bci, void\\* method_id_ptr\\)"
202
274
]
203
275
]
204
276
],
@@ -284,5 +356,36 @@ ext.upstreamPatches = [
284
356
idempotent_check: "uintptr_t sender_sp_baseline("
285
357
]
286
358
]
359
+
],
360
+
361
+
// Stack walker header patches for remote symbolication support
362
+
"stackWalker.h": [
363
+
validations: [[contains: "class StackWalker"], [contains: "static int walkVM"]],
364
+
operations: [
365
+
[
366
+
type: "signature_parameter_add",
367
+
name: "Add lock_index to private walkVM signature",
368
+
description: "Adds lock_index parameter to private walkVM implementation for remote symbolication pool management",
369
+
find: "(static int walkVM\\(void\\* ucontext, ASGCT_CallFrame\\* frames, int max_depth,\\s*StackWalkFeatures features, EventType event_type,\\s*const void\\* pc, uintptr_t sp, uintptr_t fp)\\);",
370
+
replace: "\$1, int lock_index);",
371
+
idempotent_check: "int lock_index\\);"
372
+
],
373
+
[
374
+
type: "signature_parameter_add",
375
+
name: "Add lock_index to public walkVM signature (features overload)",
376
+
description: "Adds lock_index parameter to public walkVM features-based overload",
377
+
find: "(static int walkVM\\(void\\* ucontext, ASGCT_CallFrame\\* frames, int max_depth, StackWalkFeatures features, EventType event_type)\\);",
378
+
replace: "\$1, int lock_index);",
379
+
idempotent_check: "EventType event_type, int lock_index\\);"
380
+
],
381
+
[
382
+
type: "signature_parameter_add",
383
+
name: "Add lock_index to public walkVM signature (anchor overload)",
384
+
description: "Adds lock_index parameter to public walkVM anchor-based overload",
385
+
find: "(static int walkVM\\(void\\* ucontext, ASGCT_CallFrame\\* frames, int max_depth, JavaFrameAnchor\\* anchor, EventType event_type)\\);",
386
+
replace: "\$1, int lock_index);",
387
+
idempotent_check: "JavaFrameAnchor\\* anchor, EventType event_type, int lock_index\\);"
0 commit comments