[PATCH] D119910: [clang][debug] port clang-cl /JMC flag to ELF

Yuanfang Chen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 16 11:28:40 PST 2022


ychen added a comment.

> - how does that work, actually? How does it differentiate between "my" code and "code that happens to be compiled in the current CU" (e.g. the STL).  What's the significance of the funky `__XXXXXXXX_x at c` symbols?

The non-user code is specified by a config file (https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2022#BKMK_CPP_Customize_call_stack_behavior). Then the debugger would know user/non-user code by looking at the debuginfo. The boolean `__XXXXXXXX_x at c` symbol has a one-to-one mapping to a source file. For all functions defined in the corresponding source file, it decides if a breakpoint would be hit. It is the `JMC_flag` in https://github.com/ojdkbuild/tools_toolchain_vs2017bt_1416/blob/master/VC/Tools/MSVC/14.16.27023/crt/src/vcruntime/debugger_jmc.c.

> - if the goal is to integrate this into lldb (and given that lldb currently does not support any feature like this), I'd recommend sending an RFC/heads up early, to identify possible issues

The goal is to make the feature usable by an ELF-based compiler(actually we have a downstream debugger that needed this. lldb/gdb as well). I think this could benefit upstream debuggers hence this patch. I'll send an RFC. Thanks.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119910/new/

https://reviews.llvm.org/D119910



More information about the llvm-commits mailing list