# Development Toolchain ## Introduction The development toolchain subsystem provides debugging commands and tools for performance monitoring and tracing. This subsystem provides the following tools: - bytrace: a tool for you to trace processes and monitor performance. It encapsulates and extends the ftrace inside the kernel and supports tracing in the user space. - hdc: a command line tool for debugging. With hdc, you can interact with real devices or simulators from Windows, Linux, or macOS. - profiler: a performance profiling platform for you to analyze memory and performance issues. ## Architecture The figure below shows the architecture of the development toolchain subsystem. **Figure 1** Architecture of the development toolchain subsystem ![](figures/development_toolchain_architecture.png) ## Directory Structure ``` /developtools # Development toolchain subsystem ├── bytrace_standard # bytrace code │ └── bin # bytrace function implementation │ └── innerkits # Header files for internal subsystems ├── hdc_standard # hdc code │ └── src # hdc function implementation │ └── prebuilt # Prebuilt code ├── profiler # Profiler code │ └── device # Device code │ └── host # Host code │ └── interfaces # APIs between modules and external APIs │ └── trace_analyzer # bytrace analyzer code │ └── protos # proto files ``` ## Usage ### bytrace The table below lists the commands supported by bytrace. **Table 1** Commands supported by bytrace