Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Tools, Software and IDEs blog Software Debuggers: What next?
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Software Debuggers: What next?

Andrew N. Sloss
Andrew N. Sloss
September 11, 2013
1 minute read time.

Great leaps in human knowledge are linked to advancements in tools. For software engineers the debugger is a cornerstone tool to create reliable products. We engage in a running battle fighting both the problem and the tool because each debug situation is unique.

 

This is a major challenge for debugger designers, i.e. how do we build a debugger with a balance of flexibility and simplicity with enough usefulness? With the rate of hardware change increasing - along with improvements in Operating Systems and Programming Languages, debugging and optimizing software becomes paramount i.e. improving performance, code-size and energy-efficiency.

 

As we transition towards more hardware parallelism the pressure grows to keep the time-to-market at least constant which in turn means new debugging strategies. From my perspective it is always good to draw from the current technology landscape and view how we can use these technologies in the future. For instance, Cover Flow UI could be used to improve multi-processor viewing, Microsoft Kinect to navigate the debug UI, and further more expert systems running in the cloud to help analyze problems and bottlenecks in the code. These ideas may be farfetched but we need to start looking at alternative ways of making debug and optimization more efficient in the future - if we want to keep the time-to-market constant.

 

Today we see mobile and tethered systems with 1, 2 and soon to be 4 application processors in the compute-node. Tomorrow this number could be exponentially larger either in an off-chip distributed configuration and/or on-chip tightly integrated configuration. Taking just performance as one of the metrics for the future - performance will be a function of how well the data can be localized and how an algorithm can be broken down into parallel tasks. The software that runs on these types of systems will have to be debugged and optimized using radically new techniques due to the inherent complexity.

 

Tomorrows debuggers will be different because tomorrows hardware topologies will be different. The question is what other farfetched technologies are required to make the debug process easier?

Anonymous
Parents
  • Andrew N. Sloss
    Andrew N. Sloss over 12 years ago
    Thank you for your comments! Totally agree "rewinding and multithreaded" are important base technologies, but the problem is how to scale these capabilities effective across 16, 32, or even greater that 128 cores on-chip. Problems around debugging "many" core heterogeneous systems is going to be critical and difficult. An important question to ask is do you think/believe the current debugger UIs are sufficient and capable of handling these scenarios? Personally I see a problem looming and unless we think about this problem in a very different way we will not scale. Do you agree or disagree? Again thank you for comments it is going to be an interesting area for the future.
    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Comment
  • Andrew N. Sloss
    Andrew N. Sloss over 12 years ago
    Thank you for your comments! Totally agree "rewinding and multithreaded" are important base technologies, but the problem is how to scale these capabilities effective across 16, 32, or even greater that 128 cores on-chip. Problems around debugging "many" core heterogeneous systems is going to be critical and difficult. An important question to ask is do you think/believe the current debugger UIs are sufficient and capable of handling these scenarios? Personally I see a problem looming and unless we think about this problem in a very different way we will not scale. Do you agree or disagree? Again thank you for comments it is going to be an interesting area for the future.
    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Children
No Data
Tools, Software and IDEs blog
  • Python on Arm: 2025 Update

    Diego Russo
    Diego Russo
    Python powers applications across Machine Learning (ML), automation, data science, DevOps, web development, and developer tooling.
    • August 21, 2025
  • Product update: Arm Development Studio 2025.0 now available

    Stephen Theobald
    Stephen Theobald
    Arm Development Studio 2025.0 now available with Arm Toolchain for Embedded Professional.
    • July 18, 2025
  • GCC 15: Continuously Improving

    Tamar Christina
    Tamar Christina
    GCC 15 brings major Arm optimizations: enhanced vectorization, FP8 support, Neoverse tuning, and 3–5% performance gains on SPEC CPU 2017.
    • June 26, 2025