trace2: add macOS and Windows process ancestry tracing#2040
trace2: add macOS and Windows process ancestry tracing#2040mjcheetham wants to merge 4 commits intogitgitgadget:masterfrom
Conversation
In 353d3d7 (trace2: collect Windows-specific process information) Windows-specific process ancestry information was added as a data_json event to TRACE2. Furthermore in 2f732bf (tr2: log parent process name) similar functionality was added for Linux-based systems, using procfs. Teach Git to also log process ancestry on macOS using the sysctl with KERN_PROC to get process information (PPID and process name). Like the Linux implementation, we use the cmd_ancestry TRACE2 event rather than using a data_json event and creating another custom data point. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
Include an implementation of trace2_collect_process_info for macOS. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
In 353d3d7 (trace2: collect Windows-specific process information) we added process ancestry information for Windows to TRACE2 via a data_json event. It was only later in 2f732bf (tr2: log parent process name) that the specific cmd_ancestry event was added to TRACE2. In a future commit we will emit the ancestry information with the newer cmd_ancestry TRACE2 event. Right now, we rework this implementation of trace2_collect_process_info to separate the calculation of ancestors from building and emiting the JSON array via a data_json event. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
Since 2f732bf (tr2: log parent process name) it is now possible to emit a specific process ancestry event in TRACE2. We should emit the Windows process ancestry data with the correct event type. To not break existing consumers of the data_json "windows/ancestry" event, we continue to emit the ancestry data as a JSON event. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
|
/preview |
|
Preview email sent as pull.2040.git.1770121400.gitgitgadget@gmail.com |
|
@mjcheetham don't forget to |
|
/preview |
|
Preview email sent as pull.2040.git.1770202075.gitgitgadget@gmail.com |
dscho
left a comment
There was a problem hiding this comment.
Looks good to me! I cannot speak for the correctness of the macOS-specific code, of course, but then, I don't think that any reviewer on the Git mailing list will go into that much depth (it's not Linux, after all...).
|
/submit |
|
Submitted as pull.2040.git.1770307510.gitgitgadget@gmail.com To fetch this version into To fetch this version to local tag |
|
|
||
| switch (reason) { | ||
| case TRACE2_PROCESS_INFO_STARTUP: | ||
| get_is_being_debugged(); |
There was a problem hiding this comment.
"Kristoffer Haugsbakk" wrote on the Git mailing list (how to reply to this email):
On Thu, Feb 5, 2026, at 17:05, Matthew John Cheetham via GitGitGadget wrote:
> From: Matthew John Cheetham <mjcheetham@outlook.com>
>
> Since 2f732bf1 (tr2: log parent process name) it is now possible to emit
The usual way to refer to commits is to use `git show -s
--pretty=reference`. (Or maybe with `--abbrev=8` as well
which seems to be the case here.) That also adds the date.
See `SubmittingPatches`.
> a specific process ancestry event in TRACE2. We should emit the Windows
> process ancestry data with the correct event type.
>
> To not break existing consumers of the data_json "windows/ancestry"
> event, we continue to emit the ancestry data as a JSON event.
>
> Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
> ---
>[snip]|
User |
|
This patch series was integrated into seen via git@2e0d24d. |
|
This branch is now known as |
|
This patch series was integrated into seen via git@b5a6e6b. |
|
There was a status update in the "New Topics" section about the branch Add process ancestry data to trace2 on macOS to match what we already do on Linux and Windows. Also adjust the way Windows implementation reports this information to match the other two. Needs review. source: <pull.2040.git.1770307510.gitgitgadget@gmail.com> |
In 353d3d7 (trace2: collect Windows-specific process information)
Windows-specific process ancestry information was added as a data_json
event to TRACE2. Furthermore in 2f732bf (tr2: log parent process name)
similar functionality was added for Linux-based systems, using procfs.
Let's teach Git on macOS to also gather process ancestry information,
and emit it as a cmd_ancestry TRACE2 event.
Furthermore, let's refactor the Windows implementation to align with
the Linux and macOS versions - by emitting the ancestry information as
a cmd_ancestry event. We keep the older, custom data_json event type
on Windows for compatibility for consumers of the TRACE2 data that use
the older event.
Thanks,
Matthew
cc: gitster@pobox.com
cc: stolee@gmail.com
cc: johannes.schindelin@gmx.de
cc: "Kristoffer Haugsbakk" kristofferhaugsbakk@fastmail.com