Maximum Stack Memory Monitoring Method Assisted by Static Analysis of the Stack Usage Profile

  • Kiho Choi
  • Seongseop Kim
  • Moon Gi Seok
  • Jeonghun Cho
  • Daejin ParkEmail author
Conference paper
Part of the Lecture Notes in Electrical Engineering book series (LNEE, volume 474)


As IoT permeates through industry in general, the safety assurances of IoT will become a major issue. One of the major safety issues, stack overflow, is a bothersome and difficult problem because it is hard to discover during design and to prevent. Many related studies for preventing stack overflow have used two general methods. The static analysis method is employed before a program runs and estimates the program’s probable maximum stack memory usage. The dynamic analysis method is used to monitor for stack overflows during run-time. Based on those prior works, this paper introduces a method for monitoring stack memory based on static analysis of the maximum stack memory usage profile. We anticipate that applying the proposed approach will prevent stack overflow in an efficient manner.


Stack overflow Stack usage Profile-based analysis 



This research was supported by the Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (2014R1A6A3A04059410).


  1. 1.
    Brylow, D., Damgaard, N., Palsberg, J.: Static checking of interrupt-driven software. In: Proceedings of the 23rd International Conference on Software, ICSE 2001, pp. 47–56 (2001)Google Scholar
  2. 2.
    Chatterjee, K., Ma, D., Majumdar, R., Zhao, T., Henzinger, T.A., Palsberg, J.: Stack size analysis for interrupt-driven programs. In: Proceedings of the 10th International Conference on Static Analysis, pp. 109–126 (2003)Google Scholar
  3. 3.
    Eslamimehr, M., Palsberg, J.: Testing versus static analysis of maximum stack size. In: 37th Annual Computer Software and Applications Conference. IEEE, pp. 619–626 (2013)Google Scholar
  4. 4.
    Brylow, D., Damgaard, N., Palsberg, J.: Static checking of interrupt-driven software. In: Proceedings of ICSE 2001, 23rd International Conference on Software Engineering, Toronto, pp. 47–56 (2001)Google Scholar
  5. 5.
    Regehr, J.: Random testing of interrupt-driven software. In: ACM International Conference On Embedded Software, pp. 290–298 (2005)Google Scholar
  6. 6.
  7. 7.
  8. 8.
    Regehr, J., Reid, A., Webb, K.: Eliminating stack overflow by abstract interpretation. In: Proceedings of EMSOFT 2003, Third International Conference on Embedded Software, pp. 306–322 (2003)Google Scholar
  9. 9.
    Regehr, J., Reid, A.: HOIST: a system for automaticallyderiving static analyzers for embedded systems. In: ACM SIGARCH Computer Architecture News (2004)Google Scholar
  10. 10.
  11. 11.
    Choi, K., Cho, J., Park, D.: Zynq-based ARM-FPGA Cooperative Platform for Maximum Stack Usage Analysis in Embedded Systems. In: Proceeding of COOLChips (2017)Google Scholar
  12. 12.
    DiBona, C., Ockman, S., Stone, M.: Open Sources: Voices from the Open Source Revolution. O’reilly, Sebastopol (1999)zbMATHGoogle Scholar
  13. 13.
    Mehlhorn, K., Naher, S., Sanders, P.: Engineering DFS-based graph algorithm. Partially supported by DFG grant SA 933/3–1 (2007)Google Scholar
  14. 14.

Copyright information

© Springer Nature Singapore Pte Ltd. 2018

Authors and Affiliations

  • Kiho Choi
    • 1
  • Seongseop Kim
    • 1
  • Moon Gi Seok
    • 2
  • Jeonghun Cho
    • 1
  • Daejin Park
    • 1
    Email author
  1. 1.School of Electronics EngineeringKyungpook National UniversityDaeguSouth Korea
  2. 2.Department of Electrical EngineeringKAISTDaejeonSouth Korea

Personalised recommendations