Wanderer's Space

Yet another blog about software development.


See the blog entries tag wise

Dissecting ELF with readelf

September 23, 2023 | Tags: elf self-reference

readelf is a powerful tool that can be leveraged to dissect and understand ELF files. It can further help to understand how the linker and loader make use of the information present in it to load the executable into the memory. In this cheatsheet kind of self-reference post, the most important functions of this tool are described.


Using Qemu with User applications

April 3, 2023 | Tags: emulation arm self-reference

Qemu is an emulator that supports various architectures. In this self-reference post, I will describe how Qemu can be used in user-level programs, all the essential commands and steps that are needed.


Allocators

June 29, 2020 | Tags: C++ Allocators

Allocators provides a handle to override the memory management done by the operating systems. In this blog, I will incrementally write about the details of allocators.


Watchpoints in GDB

April 11, 2020 | Tags: gdb C++ C linux

Used to stop execution whenever the value of an expression changes, without having to predict a particular place where this might happen. The expression may be as simple as the value of a single variable or complex as a combination.


Setting a static-IP address on Raspberry Pi

March 28, 2020 | Tags: networking rpi

This post describes how to setup a static IP address on a Raspberry Pi, in fact this can be used on any Linux machine. This post is meant mainly for my reference, while also giving the actual reference.


Headless First-Time Boot of RPi

March 27, 2020 | Tags: rpi booting tricks

This post describes how to connect the raspberry pi (with a interface by Raspberry Pi foundations) to the internet and enable the ssh, all on the first boot. This post is meant mainly for my reference, while also giving the actual reference.


std::optional

March 4, 2020 | Tags: C++ optional C++17

Introduced in C++17, it is used to represent a type whose content is not always present.


Inheritance

February 2, 2020 | Tags:

Simple inheritance:


Data Structures in C++

January 23, 2020 | Tags: C++ Datastructures

C++ offers a wide range of data structures. From a performance perspective, the right data structure has to be chosen. This post briefly outline the main feature of every data structure available in C++.


Shared Libraries in Linux

December 2, 2019 | Tags: libraries C++ C linux

In this short post, I briefly describe how to create and use static and dynamic shared libraries. It should be noted that this post is created purely for my quick reference. The original references would be cited.


Compile time checking in C

August 8, 2019 | Tags: C

There might be place where there has to be a check that has to be done at the compile time. In C, one can use _Static_assert(<bool-expr>, <str-literal>). When the bool-expr is 0, it throws a compile time error with the message specified in str-literal.


What are HEX file?

July 20, 2019 | Tags: hexfile C++ C microcontroller

I have been programming microcontroller for the past 6 years and I was always curious what is happening at the lowest level. They are ofcourse they hold some of binary content in them and modern IDEs takes care them. I honestly never really bothered to look into their significance. But recently I had to dissect the hex file and look for some important information.


One use case of double pointers

December 2, 2018 | Tags: C C++ pointers

The whole concept of pass-by-value in C seemed so simple in the beginning and could also be one of the reason why many beginners might take it for granted and I was one of them when I got started with the language four years ago. I am writing this post after spending hours debugging some code that I wrote for one of my assignment, without realizing that I was making a fundamental mistake.


Volatile Variables

March 23, 2018 | Tags: C C++ volatile microcontroller

This short article describes how volatile variable can benefit the development on both desktop and embedded applications.


Google Test Framework

March 18, 2018 | Tags: unittest C++

In my recent past at my office place I have heard a lot about unit testing methodology. The amount of emphasis put on unit testing in software engineering was beyond my expectation when I first heard about it. However, very soon I have understood the importance of it, more so for automated testing. Unit testing the code written in C# is quite straight forward, mainly because of the framework provided by Visual Studio. However, things get little complicated when working on unit tests for C++, even more complicated when working on Linux. Well, the above statement was thought when I was just starting with unit testing.


Port Forwarding

January 1, 2018 | Tags: networking

Over the past year, I learnt a lot about networking. Yet, there has been a hunch that I have barely scratched the surface of networking concepts. But having done something today (which I’ll brief out) gave me some amount of satisfaction.


My Acquaintance to Microcontrollers

February 14, 2016 | Tags: experience microcontroller

It all started when I was in my first year of engineering and had participated in a robotics workshop conducted at our college. My days were so boring until then. But after attending the workshop with a gust of anxiety, I was truly impressed and final found what I would love. Still pristine are those memories of those days when the mentor had explained us about microcontrollers and their capabilities. I was so fascinated that I even started doing my own experiments with electronics. I was very desperately waiting for the day to come on which I would be formally acquainted to microcontrollers. But I couldn’t be patient enough and bought some books after doing a small research on where to start from. Meanwhile I also bought an Arduino Uno. With it, I witnessed the capabilities with my own eyes. I was very passionate about electronics and computer programming since before. And the time I was waiting for has finally arrived.