Linaro Connect resources will be available here during and after Connect!

Booking Private Meetings
Private meetings are booked through bkk19.skedda.com and your personal calendar (i.e. Google Calendar). View detailed instructions here.

For Speakers
Please add your presentation to Sched.com by attaching a pdf file to your session (under Extras > + File). We will export these presentations daily and feature on the connect.linaro.org website here. Videos will be uploaded as we receive them (if the video of your session cannot be published please let us know immediately by emailing connect@linaro.org).

Dave Pigott has come up with another puzzle: https://linaro.co/bkk19puzzle can you crack the code?! Prizes will be awarded to the winner(s) on Friday.

Back To Schedule
Monday, April 1 • 2:00pm - 2:25pm
BKK19-102 Enable debug tools on Golang for arm platform – (MSan & TSan)

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Uninitialized memory can cause unpredict behavior and be hard to reproduce. Also Race conditions are among the most insidious and elusive programming errors. They typically cause erratic and mysterious failures, often long after the code has been deployed to production. Developers need to pay a lot of effort on testing and write code with care. Golang provides runtime tools for detecting those issues.

MemorySanitizer is a dynamic detector of uninitialized memory(UUM) in C and C++. The tool is based on compile time instrumentation and relies on bitprecise shadow memory at run-time. Shadow propagation technique is used to avoid false positive reports on copying of uninitialized memory. Also it’s a part of LLVM trunk and implemented as an LLVM optimization pass.

ThreadSanitizer is a dynamic detector of data races, implemented by hybrid algorithm(based on happens-befor and locksets) and is a part of compiler-rt in LLVM.

In this presentation I will share
1, What are MemorySanitizer and ThreadSanitizer
2, The algorithms of the two detectors
3, The relationship between them and LLVM
4, How to port them into Golang on arm64
5, The example used in Golang

avatar for Fangming Fang

Fangming Fang

senior software engineer, Arm
Work on Golang for enabling arm port, performance optimization etc.

Monday April 1, 2019 2:00pm - 2:25pm GMT+07
Session Room 1 (Lotus 1-2)