Tôi đang cố gắng để có được backtrace ngăn xếp của một tiến trình đang chạy (PID và đường dẫn nhị phân được biết) từ một chương trình khác. Chương trình được đề cập được viết bằng C++ và được biên dịch bằng g ++ với các ký hiệu gỡ lỗi gdb.Nhận backtrace ngăn xếp của một quy trình đang chạy
Tôi đang tìm kiếm một C hoặc C++ thư viện mà các công trình trên Linux, HP-UX và Solaris sản xuất một sản lượng tương tự như đầu ra gọi popen() với một cái gì đó như thế này:
gdb -batch -x /dev/stdin <BINARY> <PID> << EOF
thread apply all bt
EOF
tôi đã tìm thấy lsstack (http://sourceforge.net/projects/lsstack/), chỉ có Linux và biết chương trình pstack cho Solaris.
Có ai biết cách đáng tin cậy để thực hiện giao diện Unix/POSIX này không?
Ngoài ra còn có tiện ích 'gstack' trên Linux, hoạt động bằng cách gọi gdb tương tự như trên. – mark4o