Bộ nhớ Stack

Tràn bộ nhớ stack

Stack là gì

Stack là vùng nhớ dành cho các biến local, địa chỉ của bộ đếm chương trình. Trong ứng dụng nhúng với tài nguyên giới hạn, phần mềm nếu thiết kế không tốt có thể dẫn đến tràn stack , từ đó gây ra những lỗi với hiện tượng khó xác đinh lúc runtime. Để tránh việc này, các nhà lập trình được khuyến cáo không khai báo một mảng local quá lớn và không dùng đệ quy trong các ứng dụng nhúng.

Tuy nhiên, trong một hệ thống phần mềm phức tạp viết bởi nhiều người và không thể kiểm soát được mã nguồn viết bởi người khác, nhu cầu kiểm tra hệ thống phần mềm hiện tại đã chiếm bao nhiêu tài nguyên stack là điều cần thiết.

Kiểm tra stack

Kiểm tra stack hiện đang được dùng có thể bằng nhiều cách:

Tóm lại, có nhiều cách từ đơn giản (viết thêm mã) đến phức tạp (dùng tool), để estimate stack hiện dùng so với tài nguyên đang có, các lập trình viên có thể sử dụng với các mục đích khác nhau (bring up hệ thống, debug lỗi).

Từ kipalog.com