Skip to content

Using VSLinux to navigate Linux kernel source

Dmitry Fleytman edited this page Jun 11, 2015 · 1 revision

VSLinux for Linux Kernel

Although the Linux Kernel is a big and very complex project, the VSLinux allows one to use Microsoft Visual Studio as Linux Kernel IDE.

Not getting into the reasons why would someone want to do so, this article focuses on technical details.

Credits

We learned a lot from HowTo use the CDT to navigate Linux kernel source by Corey Ashford ([email protected]) and Nicholas Walton ([email protected]).

VSLinux Configuration

Configuration required

Actually, we’re going to replicate the Eclipse CDT setup mentioned above for the MSVC IDE using the VSLinux.

The steps are:

  • to add include/generated/autoconf.h to the Built-In Includes list
  • to add the following folders to the Include Folders list:
    • arch/architecture/include
    • include
    • include/uapi
  • to define __KERNEL__=1
  • to remove irrelevant arch/* folders

So, here’s how it looks for x86.

dnx_list_files.cfg

SHOW .*\.[ch]$
SHOW .*\.cc$
SHOW .*\.sh$
SHOW .*\.awk$
SHOW .*\.pl$
SHOW .*\.config$
SHOW .*AUTHORS$
SHOW .*ChangeLog$
SHOW .*COPYING$
SHOW .*INSTALL$
SHOW .*Makefile\.*
SHOW .*Kbuild$
SHOW configure\.ac$
SHOW .*VSLinux.*$
HIDE .*\.git\\.*
HIDE .*\.mod.c$
HIDE arch(?!\\x86)\\.*
HIDE .*\\arch(?!\\x86)\\.*

dnx_list_files.buildcfg

make.build    = make all
make.rebuild  = make clean all
make.clean    = make clean
make.defines  = __KERNEL__=1
make.includes = $(ProjectDir)\include\generated\autoconf.h
make.inc_dirs = $(ProjectDir)\arch\x86\include;$(ProjectDir)\include;$(ProjectDir)\include\uapi