This is part two in a series of articles which describe how to debug C/C++ applications from Mac OS X which are running on a remote Linux machine (possibly a virtual machine). This part describes how to configure Eclipse for remote debugging.

## ETAPS 2012 in Tallinn, Estonia: FASE and WRLA publications

In this post I want to share some impressions from Tallinn, Estonia. Tallinn has been the host city for the European Joint Conferences on Theory and Practice of Software (ETAPS) conference this year. At the conference, my colleagues and I published and presented two publications I also want to advertise here: “Design and Analysis of Cloud-Based Architectures with KLAIM and Maude” at the 9th International Workshop on Rewriting Logic and its Applications (WRLA 2012) and “Stable Availability under Denial of Service Attacks through Formal Patterns” at the 15th International Conference on Fundamental Approaches to Software Engineering (FASE 2012).

## Euler Problem 15 in C++ and the power of memoization

Euler Problem 15 asks: “Starting in the top left corner of a 2 × 2 grid, there are 6 routes (without backtracking) to the bottom right corner. How many routes are there through a 20 × 20 grid?”

It is well known that the solution for a n × n grid corresponds to the n^{th} number of the 2n^{th} row of Pascal’s triangle, e.g., for n = 20 the solution is 137846528820. However, we want to solve this problem by pure counting and formalize our solutions in C++ and Maude. We will see that naïve approaches will most likely fail to compute the solutions for n = 20 efficiently and that Euler Problem 15 is part of a class of problems that can greatly benefit from memoization.

## Remote Debugging, Part 1: Configure GDB on Mac OS X for Linux Applications

This series of articles describes how to use GDB on Mac OS X to debug C/C++ applications targeted for and running on a remote Linux machine (possibly a virtual machine) equipped with gdbserver. Moreover, I will explain how to configure Eclipse to make debugging a little nicer.

This first part explains how to configure GDB for the Linux target environment when compiled on Mac OS X. This will allow you to remotely debug a Linux executable in the Linux Elf binary format with the debugger running on Mac OS X.

## Enhancing Safety and Security of Distributed Systems through Formal Patterns

Jonas Eckhardt and I published a paper on how safety and security of distributed systems can be enhanced through formal patterns. The article is part of the Proceedings of the Doctoral Symposium of the International Symposium on Engineering Secure Software and Systems (ESSoS 2012).

Abstract:

Distributed systems are often safety- and security-critical systems and have strong qualitative and quantitative formal requirements, equally important time-critical performance-based quality of service properties, and need to dynamically adapt to changes in a potentially hostile and often probabilistic environment. These aspects make distributed systems complex and hard to design, build, test, and verify. To tackle this challenge, we propose a formal pattern-based approach and framework for the design of correct-, secure-, and safe-by construction distributed systems.

Available online: “Enhancing Safety and Security of Distributed Systems through Formal Patterns”

Proceedings of the Doctoral Symposium of the International Symposium on Engineering Secure Software and Systems (ESSoS 2012)