gdb의 읽기 전용 모드

gdb의 읽기 전용 모드

gdb읽기 전용 모드 가 있나요 ?

gdb 수준을 읽기 전용으로 제한하는 방법이 있습니까? 따라서 gdb의 현재 데이터를 수정할 수 없습니다.

이 경우 gdbserver나 다른 도구가 도움이 될 수 있습니까?

답변1

개발자가 변경하는 것을 원하지 않는다면 코어 덤프를 제공하는 것은 어떨까요? coredump는 프로세스의 메모리 맵 덤프입니다. 이것과 코어 덤프를 생성하는 바이너리를 사용하면 애플리케이션을 실행하지 않고도 애플리케이션을 디버깅할 수 있습니다(디버그 정보만 필요함). 코어 덤프를 생성하려면 gcore다음 명령을 사용하십시오.

답변2

gdb에는 읽기 전용 모드가 없으며 gdb는 프로그램을 디버깅하는 유일한 방법은 아닙니다(특별한 권한이 없습니다). GDB 사용아래에서 ptrace 권한은 전부 아니면 전무입니다.

일부 보안 프레임워크는 ptrace 사용을 제한합니다. 예를 들어, 최신 Ubuntu 버전은 ptrace기본적으로 상위 프로세스로 제한됩니다.. 그러나 이러한 제한은 어떤 ptrace 명령이 허용되는지가 아니라 누가 어떤 프로세스에서 ptrace를 사용할 수 있는지에 관한 것입니다. 나는 ptrace 명령을 구별할 수 있는 세분화된 권한을 가진 프레임워크를 모릅니다.

개발자가 시스템 작동 방식을 수정하지 않고도 프로덕션 서버의 문제를 실시간으로 조사할 수 있도록 하려는 것 같습니다. 이 문제에 대한 한 가지 해결책은 가상 머신에서 모든 서버를 실행하는 것입니다. 문제가 발생하면 VM의 스냅샷을 찍어 복사한 후 개발자가 스냅샷(네트워크 연결이 끊어진 상태)에서 작업하도록 하세요. 저장된 스냅샷을 기반으로 여러 번 디버깅을 다시 시작할 수 있으므로 개발자의 작업이 더 쉬워집니다.

관련 정보