farre / midas

A GDB/MI Visual Studio Code Debug Adapter
MIT License
29 stars 1 forks source link

Simplified timeline #178

Open sj-raima opened 9 months ago

sj-raima commented 9 months ago

It would be useful to have a window that would show a simplified timeline.

The timeline would be shared between all the midas-rr for a given recording and show where the execution is (with event ID) for each process being debugged (and maybe also other processes) and where their checkpoints are.

This feature would be especially useful when debugging multiple processes from a recording. See issue #33

I suggest that Mermaid could be used to display this. Here is one example with two processes where the colors should match the colors of each debug session. I think "zenuml" instead of "sequenceDiagram" could be a better fit, but did not get that to work with the version of mermaid I had installed.


sequenceDiagram
    box orange
        participant 12226 as myServer (122265)
    end
    Note over 12226: 1234: execve arg1 arg2
    box green
        participant 22345 as myServer fork 12226 (22345)
    end
    Note over 22345: 1240: fork 122265
    rect rgb(255, 0, 0)
        Note over 12226: 1244: Stopped at breakpoint:<br/>file.c:224
    end
    Note over 22345: 1241: Checkpoint: After fork
    Note over 12226: 1300: Checkpoint: Before exit
    Note over 12226: 13002: exit: 0
    Note over 22345: 13002: Checkpoint<br/>Parent process have exited
    rect rgb(0, 255, 0)
        Note over 22345: 13040-> Continue<br/>(Parent process have exited)
    end
    Note over 22345: 14400: Checkpoint
    Note over 22345: 22022: Exit: 0

The above code should probably use create and destroy participant to show the duration of each process or maybe something else completely.