[all-commits] [llvm/llvm-project] 129eb5: [lldb] Add the ability to provide a message to a p...
Jonas Devlieghere via All-commits
all-commits at lists.llvm.org
Sun Feb 12 11:19:55 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 129eb5bcab91a12ed3c4712279f201834ae2d8e1
https://github.com/llvm/llvm-project/commit/129eb5bcab91a12ed3c4712279f201834ae2d8e1
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2023-02-12 (Sun, 12 Feb 2023)
Changed paths:
M lldb/include/lldb/Core/Debugger.h
M lldb/include/lldb/Core/DebuggerEvents.h
M lldb/include/lldb/Core/Progress.h
M lldb/source/API/SBDebugger.cpp
M lldb/source/Core/Debugger.cpp
M lldb/source/Core/DebuggerEvents.cpp
M lldb/source/Core/Progress.cpp
Log Message:
-----------
[lldb] Add the ability to provide a message to a progress event update
Consider the following example as motivation. Say you have to load
symbols for 3 dynamic libraries: `libFoo`, `libBar` and `libBaz`.
Currently, there are two ways to report process for this operation:
1. As 3 separate progress instances. In this case you create a progress
instance with the message "Loading symbols: libFoo", "Loading
symbols: libBar", and "Loading symbols: libBaz" respectively. Each
progress event gets a unique ID and therefore cannot be correlated
by the consumer.
2. As 1 progress instance with 3 units of work. The title would be
"Loading symbols" and you call Progress::Increment for each of the
libraries. The 3 progress events share the same ID and can easily be
correlated, however, in the current design, there's no way to
include the name of the libraries.
The second approach is preferred when the amount of work is known in
advance, because determinate progress can be reported (i.e. x out of y
operations completed). An additional benefit is that the progress
consumer can decide to ignore certain progress updates by their ID if
they are deemed to noisy, which isn't trivial for the first approach due
to the use of different progress IDs.
This patch adds the ability to add a message (detail) to a progress
event update. For the example described above, progress can now be
displayed as shown:
[1/3] Loading symbols: libFoo
[2/3] Loading symbols: libBar
[3/3] Loading symbols: libBaz
Differential revision: https://reviews.llvm.org/D143690
More information about the All-commits
mailing list