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

Generate Wazuh symbols for macOS, linux and windows separate from the binary file #9913

Open
10 of 14 tasks
Dwordcito opened this issue Aug 26, 2021 · 3 comments · May be fixed by #23760
Open
10 of 14 tasks

Generate Wazuh symbols for macOS, linux and windows separate from the binary file #9913

Dwordcito opened this issue Aug 26, 2021 · 3 comments · May be fixed by #23760
Assignees
Labels

Comments

@Dwordcito
Copy link
Member

Dwordcito commented Aug 26, 2021

Branch: enhancement/9913-generate-debug-symbols-epic

Description

This epic aims to generate the debugging symbols files for macOS, Linux, and Windows, having enough information to solve the issues quickly, without having to reproduce issues with a different version than the one that goes out on the production builds.
Apart from this, the epic also aims to be able to carry out an active search for problems in the component that cause crashes and memory problems.
This epic tries to help improve the product at a faster rate!

Goals

  • Always generate debug information.
  • Upload debug symbols on each CI compilation.
  • Enable dump generation on installer process by default -> with references on documentation (how to disable the dump generation) quick reference.

Functional requirements

  1. Debug Symbol Generation:

    • Debug symbols must be generated for all project components during the build.
    • Debug symbols should include information about functions, variables, and source code lines.
    • Debug symbols must be generated in a format compatible with the target platform (e.g., DWARF for macOS and Linux, PDB for Windows).
  2. Automatic Upload:

    • Debug symbols generated during the CI/CD pipeline must be automatically uploaded to a centralized location.
    • Uploaded symbols should be organized by build version and platform for easy retrieval.
  3. Installer Dump Generation:

    • The installer process must include a feature to generate crash dumps by default.
    • Documentation should clearly explain how to disable dump generation for advanced users.
  4. Crashpad Integration (Second Iteration):

    • Integrate Crashpad to capture crash reports and generate minidump files.
    • Configure Crashpad to report crashes to external services.
  5. Integrate Crashpad for Advanced Crash Reporting: In the second phase, integrate Crashpad to enable advanced crash reporting and integration with services.

Non-functional requirements

  1. Performance:

    • Debug symbol generation and uploading should not significantly impact execution, build, or deployment times.
  2. Reliability:

    • Debug symbols must be generated consistently and accurately across different platforms.
    • Uploaded symbols should be securely stored and easily accessible for debugging purposes.

Implementatin restrictions

  1. Platform Compatibility:

    • Ensure that the chosen debugging symbol format is compatible with target platforms (macOS, Linux, Windows).
  2. Documentation:

    • Properly document enabling and disabling dump generation for users and contributors.

Plan

Phase 1

  1. Stage 1 - Debug Symbol Generation:

  2. Stage 2 - Automatic Upload:

  3. Stage 3 - Installer Integration:

  4. Stage 4 - Testing and Validation:

Phase 2

  1. Stage 1 - Investigate about report crashes services:

    • Investigate and evaluate a service that provides crash reports/workflows.
  2. Stage 2 - Crashpad Integration:

    • Integrate Crashpad into the project to capture crash reports.
    • Configure Crashpad to report crashes to the chosen service.
    • Exploratory test to validate crash reporting functionality.

Approval

DRI Name: @Dwordcito
Objective: Generate debug symbols

@Dwordcito Dwordcito added the epic label Aug 26, 2021
This was referenced Mar 8, 2022
@Leoquicenoz
Copy link
Contributor

ETA delayed because issue sub tasks have not been completed

@ncvicchi
Copy link
Member

ncvicchi commented Apr 30, 2024

ETA delayed because issue sub tasks have not been completed, some blocked by other issues. ETA was settled to may the 8th based on Adapt agent package generation workflows with VPN and allocator module

@Dwordcito
Copy link
Member Author

Dwordcito commented Jun 6, 2024

Delayed due last package upload mechanism changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: In progress
Status: In progress