Article: Finding memory bugs in D code with AddressSanitizer

Jon Degenhardt jond at noreply.com
Tue Dec 26 22:11:18 UTC 2017


On Monday, 25 December 2017 at 17:03:37 UTC, Johan Engelen wrote:
> I've been writing this article since August, and finally found 
> some time to finish it:
>
> http://johanengelen.github.io/ldc/2017/12/25/LDC-and-AddressSanitizer.html
>
> "LDC comes with improved support for Address Sanitizer since 
> the 1.4.0 release. Address Sanitizer (ASan) is a runtime memory 
> write/read checker that helps discover and locate memory access 
> bugs. ASan is part of the official LDC release binaries; to use 
> it you must build with -fsanitize=address. In this article, 
> I’ll explain how to use ASan, what kind of bugs it can find, 
> and what bugs it will be able to find in the (hopefully near) 
> future."

Nice article. Main question / comment is about the need for 
blacklisting D standard libraries (druntime/phobos). If someone 
wants to try ASan out on their own code, can they start by 
ignoring the D standard libraries? And, for programs that use 
druntime/phobos, will this be effective? If I understand the 
post, the answer is "yes", but I think it could be more explicit.

Second comment is related - If the reader was to try 
instrumenting druntime/phobos along with their own code, how much 
effort should be expected to correctly blacklist druntime/phobos 
code? Would many programs have smooth sailing if they took the 
blacklist published in the post? Or is this early stage enough 
that some real effort should be expected?

Also, if the blacklist file in the post represents a meaningful 
starting point, perhaps it makes sense to check it in and 
distribute it. This would provide a place for contributors to 
start making improvements.





More information about the Digitalmars-d-announce mailing list