EDBT 2026 Demo / reviewers in the wild / expert
Christopher Lidbury
dblp:163/3148
· DBLP profile ↗
3ranked-venue papers
3as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 3 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
3 papers |
Concurrent programming · 54% Software testing · 22% Debugging and program repair · 15% |
Topics — the 11 heaviest of 12, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bug detection |
0.4 | 1 | 2019 | Sparse record and replay with controlled scheduling · PLDI 2019 |
Debugging and program repair
record and replay |
0.4 | 1 | 2019 | Sparse record and replay with controlled scheduling · PLDI 2019 |
Concurrent programming › memory models › weak memory models
c11 memory model |
0.3 | 1 | 2017 | Dynamic race detection for C++11 · POPL 2017 |
Concurrent programming › concurrency bug detection › data race detection
dynamic race detection |
0.3 | 1 | 2017 | Dynamic race detection for C++11 · POPL 2017 |
Concurrent programming
memory models |
0.3 | 1 | 2017 | Dynamic race detection for C++11 · POPL 2017 |
Compilers and program optimization
compiler correctness |
0.2 | 1 | 2015 | Many-core compiler fuzzing · PLDI 2015 |
Software testing
compiler testing |
0.2 | 1 | 2015 | Many-core compiler fuzzing · PLDI 2015 |
Software testing › concurrency testing
controlled concurrency testing |
0.1 | 1 | 2019 | Sparse record and replay with controlled scheduling · PLDI 2019 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2019 | Sparse record and replay with controlled scheduling · PLDI 2019 |
Software testing
differential testing |
0.1 | 1 | 2015 | Many-core compiler fuzzing · PLDI 2015 |
Software testing
fuzzing |
0.1 | 1 | 2015 | Many-core compiler fuzzing · PLDI 2015 |
Methods — techniques the papers use, named apart from their topics
dynamic analysis · 0.4controlled scheduling · 0.4threadsanitizer · 0.3instrumentation · 0.3axiomatic semantics · 0.3random differential testing · 0.2equivalence modulo inputs testing · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | Sparse record and replay with controlled schedulingabstractModern applications include many sources of nondeterminism, e.g. due to concurrency, signals, and system calls that interact with the external environment. Finding and reproducing bugs in the presence of this nondeterminism has been the subject of much prior work in three main areas: (1) controlled concurrency-testing, where a custom scheduler replaces the OS scheduler to find subtle bugs; (2) record and replay, where sources of nondeterminism are captured and logged so that a failing execution can be replayed for debugging purposes; and (3) dynamic analysis for the detection of data races. We present a dynamic analysis tool for C++ applications, tsan11rec, which brings these strands of work together by integrating controlled concurrency testing and record and replay into the tsan11 framework for C++11 data race detection. Our novel twist on record and replay is a sparse approach, where the sources of nondeterminism to record can be configured per application. We show that our approach is effective at finding subtle concurrency bugs in small applications; is competitive in terms of performance with the state-of-the-art record and replay tool rr on larger applications; succeeds (due to our sparse approach) in replaying the I/O-intensive Zandronum and QuakeSpasm video games, which are out of scope for rr; but (due to limitations of our sparse approach) cannot faithfully replay applications where memory layout nondeterminism significantly affects application behaviour. Christopher Lidbury, Alastair F. Donaldson |
PLDI | 1 |
| 2017 | Dynamic race detection for C++11abstractThe intricate rules for memory ordering and synchronisation associated with the C/C++11 memory model mean that data races can be difficult to eliminate from concurrent programs. Dynamic data race analysis can pinpoint races in large and complex applications, but the state-of-the-art ThreadSanitizer (tsan) tool for C/C++ considers only sequentially consistent program executions, and does not correctly model synchronisation between C/C++11 atomic operations. We present a scalable dynamic data race analysis for C/C++11 that correctly captures C/C++11 synchronisation, and uses instrumentation to support exploration of a class of non sequentially consistent executions. We concisely define the memory model fragment captured by our instrumentation via a restricted axiomatic semantics, and show that the axiomatic semantics permits exactly those executions explored by our instrumentation. We have implemented our analysis in tsan, and evaluate its effectiveness on benchmark programs, enabling a comparison with the CDSChecker tool, and on two large and highly concurrent applications: the Firefox and Chromium web browsers. Our results show that our method can detect races that are beyond the scope of the original tsan tool, and that the overhead associated with applying our enhanced instrumentation to large applications is tolerable. Christopher Lidbury, Alastair F. Donaldson |
POPL | 1 |
| 2015 | Many-core compiler fuzzingabstractWe address the compiler correctness problem for many-core systems through novel applications of fuzz testing to OpenCL compilers. Focusing on two methods from prior work, random differential testing and testing via equivalence modulo inputs (EMI), we present several strategies for random generation of deterministic, communicating OpenCL kernels, and an injection mechanism that allows EMI testing to be applied to kernels that otherwise exhibit little or no dynamically-dead code. We use these methods to conduct a large, controlled testing campaign with respect to 21 OpenCL (device, compiler) configurations, covering a range of CPU, GPU, accelerator, FPGA and emulator implementations. Our study provides independent validation of claims in prior work related to the effectiveness of random differential testing and EMI testing, proposes novel methods for lifting these techniques to the many-core setting and reveals a significant number of OpenCL compiler bugs in commercial implementations. Christopher Lidbury, Andrei Lascu, Nathan Chong, Alastair F. Donaldson |
PLDI | 1 |