Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Source Code Visualization Feature #11

Open
alessandrocarminati opened this issue Nov 24, 2023 · 0 comments
Open

Implement Source Code Visualization Feature #11

alessandrocarminati opened this issue Nov 24, 2023 · 0 comments
Labels

Comments

@alessandrocarminati
Copy link
Collaborator

alessandrocarminati commented Nov 24, 2023

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant