Also add a KINST_TRAMP_FILL_SIZE constant to correct the step in
KINST_TRAMP_INIT.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Apr 17 2023
Add a KINST_TRAMP_FILL constant and use this instead of KINST_PATCHVAL. In
the RISC-V port we want to use the compressed patch value, instead of the
regular one, so KINST_PATCHVAL doesn't work in this case.
Add /* NOTREACHED */ at the end of dtrace_getreg().
Bump version to 1.13.
Add FP.
Forgot riscv_regs.d
Apr 14 2023
Apr 12 2023
Thanks for working on this!
Apr 11 2023
Get rid of amd64-specific calculation comment KINST_TRAMPS_PER_CHUNK.
Provide full diff.
Apr 10 2023
Merge and abandon D39490.
Add RISC-V exception handlers.
Compile instr_size.c into libdtrace and dtrace, move definition below KERNEL ifdef.
Provide full diff.
Use dtrace_instr_size() and get rid of machine-dependent code (depends on
D39489).
Apr 1 2023
Surround amd64-specific code in an ifdef.
Mar 28 2023
Exclude cpu_switch().
Surround amd64 exception handlers in an ifdef.
Mar 24 2023
Fix accidental dangling brace.
Implement dt_sugar_elf_verify_debuglink() to make sure the debug files we're
reading are up to date, and if they're not, skip them. Also stop leaking
elf_info structs in dt_sugar_do_kinst_inline().
Abandoning this one since we no longer search for push %rbp, instead we
exclude just the exception handlers (see D39229).
No longer search for push %rbp, just exclude the exception handlers.
This way we can trace safe functions that do not push %rbp, such as
cpu_switch().
In D38892#893746, @christos wrote:Since D38825 doesn't need this patch anymore, is this needed?
Since D38825 doesn't need this patch anymore, is this needed?
Add tests. kinst_test_inline() needs modification so that it can be splitted
into DW_AT_ranges.
Mar 23 2023
Do not exclude inline copies that have DW_AT_subprogram instead of
DW_AT_inlined_subroutine.
More bug fixes. I always keep finding them after I submit the patch.
Fix flag-check on line 779
Fix per-module parsing. Create an additional FBT probe if a non-inline definition is
found along an inline definition in the same module.
Mar 21 2023
Fix bugs, surround amd64-specific code in an #ifdef, merge flags into
dtsp_flags, handle dt_sugar_elf_init() and dwarf_elf_init() errors, use
longjmp() for dt_alloc() failures.
Mar 20 2023
Parse all loaded modules and their debug files instead of just kernel.
Mention new bug in summary.
Apparently, this patch doesn't really work and, in fact, allowing a predicate
with no acts is probably impossible in D without introducing a significant
amount of complexity. awk can do that just fine because awk's predicates cannot
contain unescaped "/", since it searches for regexes. D on the other hand
allows normal computation inside the predicate, meaning one can do division
inside it:
Put it in its own function.
I see those warnings when building libdtrace without the patch.
Mar 18 2023
I don't think there are any pending changes for this PR, it can get through.
Mention leaf function with rbp omitted.
Get rid of push %rbp check (depends on D39166).
Improve example in man page.
Do not always go back one instruction.
Handle multiple dn_pdescs properly, move handling away from
dt_sugar_visit_all().
Mar 17 2023
Got rid of deep copying, appending to the main clause is simpler.
Mar 16 2023
Handle leaf functions with their push %rbp ommitted.
Mar 8 2023
Mar 6 2023
Mar 4 2023
remove if/else comment in dt_cc as dt_sugar now also performs transformations
on kinst probes.
remove call to dwarf_next_types_section()
update dtrace_kinst.4 man page to mention inline tracing
Mar 3 2023
fix dtrace_disx86() fail in dt_sugar_kinst_find_caller_func()
use dtp->bootfile in dt_sugar_do_kinst_inline() instead of hardcoding the path