I have learnt a lot since I applied to Outreachy and started working on my internship project. I think the most interesting thing I have learnt about so far is Valgrind. I had heard the tool’s name in passing in various online discussions but never fully understood how it is used and what it is used for.
During the application period, I was researching various ways to reliably benchmark code in CI and came across cachegrind and valgrind again. This time I decided to finally understand more about it. To get a better understanding of the term, I looked up the definition on the valgrind website. According to the documentation, “Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail.” Cachegrind is a tool built using valgrind framework and will be instrumental in producing reliable and consistent results for my project.
At first, I hesitated to inquire about valgrind because I didn’t want to appear to be ignorant of fundamental open source tools and procedures.
But I soon understood that having knowledge gaps is completely natural and that learning new things and developing as a developer requires asking questions. I also asked my mentor about how to use the tool and he was very helpful in teaching me about it.