簡體   English   中英

如何在命令行應用程序中檢測堆棧溢出。 在Mac OS上用C ++編寫?

[英]How can I detect stack overflow in a command line app. written in C++ on macos?

我有一個xcode項目,代碼在C ++中。 我已經在遞歸函數中查明了導致程序不正常的原因,堆棧中有太多東西……我不會確定問題是堆棧溢出,恢復壞東西並設置陷阱來防止堆棧溢出。 我怎樣才能做到這一點?

到目前為止,我已經為clang找到了“ -fstack-protector-all”,但是一旦編程就不知道會發生什么。 已經跑了。 我也找到了“ -fsanitize =”,但是我不知道'='之后寫什么。

謝謝。

沒有確定堆棧溢出的確定方法。 您可以嘗試將最佳“ MAGIC”值放在堆棧的頂部,並且在每個新方法調用中,最好的方法是檢查該“ MAGIC”值在以前是否仍然存在,並且沒有被溢出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM