7

During debugging I'd like to have access to eigen matrices and vectors values. It seems that once I have a .natvis file, a custom view of c++ object could be created. There is a .natvis file for Eigen here, however I don't know a way to integrate it with VSCode. I also tried a gdb extension but didn't work out.

Current debugger view

How can I do that? Or what other solution do I have?

2
  • @SumitDey I think I have done something wrong then! It is working now.
    – ignacio
    Commented Dec 10, 2019 at 1:12
  • @SumitDey Would you mind writing a tutorial for that so I can mark your answer as right answer?
    – ignacio
    Commented Dec 10, 2019 at 1:16

1 Answer 1

3

GDB Extension

It is basic but supports fixed size as well as dynamic size matrices, and should suffice for ordinary use cases. Result: Expect to view Eigen matrices on VS Code as the sample here.


Setup (linux)

  1. Copy / create required files:
wget -P ~/gdbExtensions/ "https://bitbucket.org/eigen/eigen/raw/default/debug/gdb/printers.py"
touch ~/gdbExtensions/__init__.py
  1. Add extension to the .gdbinit (replace <USER> with username; basically provide absolute path to ~/gdbExtensions):
echo -en "\
python \n\
import sys \n\
sys.path.insert(0, '/home/<USER>/gdbExtensions') \n\
from printers import register_eigen_printers \n\
register_eigen_printers (None) \n\
end\n" >> ~/.gdbinit

The above info is available in the file documentation.

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.