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.
3 Answers
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.
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.
-
-
I'm not aware of lldb script yet, but it should be difficult to adapt the gdb one to lldb.– ggaelCommented Nov 23, 2016 at 9:26
-
-
1
-
2I have installed it but it's unclear to me how to use it. Could you provide any info on that? I'm using the eclipse debugger btw Commented Aug 25, 2021 at 7:23
There is a github project specifically for adding eigen printing support to GDB.
It appears to be based on the code linked in this answer.