Skip to content

Implement Source Code Visualization Feature #11

@alessandrocarminati

Description

@alessandrocarminati

Overview

The project aims to offer code navigation capabilities using both binary images and source code to visualize the Linux kernel code through graphical function dependency diagrams and source code visualization. While the tool successfully generates diagrams based on binary analysis, it lacks the functionality to provide source code visualization.

Problem

The current implementation lacks the ability to reference and visualize the source code from the symbols shown in the ks-nav diagrams, hindering comprehensive code navigation. To enable this feature, the initial step involves storing source code data for reference, and the proposed solution is to utilize a file backend instead of storing it within the database alongside the binary analysis results.

Considerations

  • Leveraging Git versioning for efficient storage and smooth transitions between kernel versions due to minimal differences.
  • Exploring technical approaches within the Go application to integrate Git functionality seamlessly.

Considered alternatives

Three approaches are currently under consideration:

  1. Go Native Library (go-git): Utilize a Golang native library like go-git for Git integration.
  2. Cgo Library (git2go): Consider using a cgo library (git2go) that relies on libgit2 for Git functionalities.
  3. Git Command Wrapping: Wrap Git commands and utilize exec within the Go application.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions