Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using GDB with Eigen C++ library

I am using the Eigen C++ library downloadable from http://eigen.tuxfamily.org/. This is a C++ library for easier handling of Matrices and Arrays. I use g++ compiler and gdb for debugging. However, I found that I am unable to print the content of a Matrix (provided by Eigen) while using gdb.

like image 711
Sooraj Avatar asked Aug 01 '14 17:08

Sooraj


2 Answers

You have to install a gdb extension that you can find in eigen/debug/gdb/.

The comment at the beginning of the file explains how to install it.

like image 106
ggael Avatar answered Sep 17 '22 17:09

ggael


One trick you can use is the .data() member, it gives you a pointer to the raw array that contains the data. With that you can print it in GDB like so:

print *X.data()@Length_X

where X is the eigen variable and Length_X is the product of its rows and columns.

like image 27
Kirillvh Avatar answered Sep 18 '22 17:09

Kirillvh