실행 중인 프로세스의 사용자 공간 메모리를 보거나 편집하는 도구?

실행 중인 프로세스의 사용자 공간 메모리를 보거나 편집하는 도구?

Linux에서 실행 중인 프로세스의 사용자 공간 메모리를 보거나 편집할 수 있는 도구가 있습니까?

훌륭한 학습 도구가 될 것입니다.

답변1

프로세스의 메모리는 /proc/12345/mem12345가 프로세스 ID인 파일로 제공됩니다. 하지만 아직은 그것으로부터 직접 아무것도 배울 수 없을 것입니다. 가장 먼저 파악해야 할 부분은 매핑된 부분입니다. 이 정보는 /proc/12345/maps및 에서 확인할 수 있습니다 /proc/12345/smaps. 항목은 다음 /proc커널 문서에 문서화되어 있습니다.Documentation/filesystems/proc.txt. 이 lsof명령은 프로세스가 더 읽기 쉬운 방식으로 메모리에 매핑한 파일에 대한 정보를 제공합니다.

디버거를 사용하여 실행 중인 프로세스를 살펴보는 것이 더 유익할 수 있습니다. Linux의 일반적인 디버거는 다음과 같습니다.GDB. Gdb에는 간단한 명령줄 인터페이스가 있습니다.DDD그리고이맥스사용자 친화적인 인터페이스를 제공합니다. 최상의 결과를 얻으려면 여전히 디버깅 기호가 있고 소스를 사용할 수 있는 프로그램을 살펴보세요(예: 방금 컴파일했지만 -g제거하지 않은 프로그램을 살펴보세요).

strace또한 프로세스가 생성하는 시스템 호출을 감시하는 방법과 ltrace(일부) 라이브러리 호출을 감시하는 방법 도 알아야 합니다 .

관련 정보