blog.netbsd.org

LLDB: extending CPU register inspection support

Upstream describes LLDB as a next generation, high-performance debugger.
It is built on top of LLVM/Clang toolchain, and features great
integration with it. At the moment, it primarily supports debugging C,
C++ and ObjC code, and there is interest in extending it to more
languages.

In February, I have started working on LLDB, as contracted by the NetBSD
Foundation.

(Read more...)

Continuation of signal semantics improvements

Over the past month I’ve finally managed to correct masking semantics of crash signals
(SIGSEGV, SIGTRAP, SIGILL, SIGFPE, SIGBUS).
Additionally I’ve fixed masking semantics in forks(2) and vforks(2) (they trigger a crash signal SIGTRAP).
There is remaining work in signal semantics for other types of events (mainly thread related).
The coverage of signal code in ptrace(2) regression tests keeps continuously

(Read more...)

LLDB/LLVM report for March 2019

Upstream describes LLDB as a next generation, high-performance debugger.
It is built on top of LLVM/Clang toolchain, and features great
integration with it. At the moment, it primarily supports debugging C,
C++ and ObjC code, and there is interest in extending it to more
languages.

Originally, LLDB was ported to NetBSD by Kamil Rytarowski. However,
multiple upstream changes and

(Read more...)

Increasing coverage of signal semantics in regression tests

Kernel signal code is a complex maze, it’s very difficult to introduce non-trivial
changes without regressions.
Over the past month I worked on covering missing elementary scenarios involving the ptrace(2) API.
Part of the new tests were marked as expected to success, however a number of them are expected to fail.

LLDB from trunk is running on NetBSD once again!

Upstream describes LLDB as a next generation, high-performance debugger.
It is built on top of LLVM/Clang toolchain, and features great
integration with it. At the moment, it primarily supports debugging C,
C++ and ObjC code, and there is interest in extending it to more
languages.

Originally, LLDB was ported to NetBSD by Kamil Rytarowski. However,
multiple upstream changes and

(Read more...)

Final report on Clang / LLD state

Starting this month, I will be focusing my effort on LLDB, the debugger
of the LLVM toolchain, as work contracted by the NetBSD Foundation.
In this entry, I would like to shortly summarize what I’ve been working
on before and what I have been able to accomplish, and what I am going
to do next.

The first report on LLD porting

Prepared by Michał Górny (mgorny AT gentoo.org).

LLD is the link editor (linker) component of Clang toolchain. Its main
advantage over GNU ld is much lower memory footprint, and linking speed.
It is of specific interest to me since currently 8 GiB of memory are
insufficient to link LLVM statically (which is the upstream default).

The first goal of LLD

(Read more...)

The process of upstreaming support to LLVM sanitizers has been finalized

I’ve finished the process of upstreaming patches to LLVM sanitizers (almost 2000LOC of local code) and submitted to upstream new improvements for the NetBSD support.
Today out of the box (in unpatched version) we have support for a variety of compiler-rt LLVM features:
ASan (finds unauthorized memory access), UBSan (finds unspecified code semantics), TSan (finds threading bugs), MSan (finds uninitialized

(Read more...)

NetBSD LLVM Sanitizers in The Bay Area

I have presented the state of NetBSD sanitizers during two conferences in the San Francisco Bay Area: Google Summer of Code Mentor Summit (Mountain View) and MeetBSDCa (Santa Clara, Intel Campus SC12). I’ve also made progress in upstreaming of our local patches to LLVM sanitizers and introducing generic NetBSD enhancements there.