-
ptrace로 프로세스 제어 및 응용하기
Intro 안녕하세요. 이번 글에서는 리눅스에서 제공하는 시스템 콜인 ptrace를 활용하여 프로세스를 제어하는 방법을 다루어보려 합니다. ptrace는 프로세스(process)를 추적(trace)하고 디버깅하는 데 사용되는 강력한 기능을 제공합니다. 우리가 흔히 사용하는 GDB(GNU Debugger)도 내부적으로 ptrace를 사용하여 디버깅 기능을 수행합니다. 본 글에서는 ptrace가 제공하는 여러 기능을 살펴본 후, 이를 응용하여 간단한 예제 프로그램을 만들어 보겠습니다. 본 글은 기본적인 시그널 제어 및 프로세스 핸들링을 이해하고 있다는 가정 하에 작성되었습니다. 시그널과 프로세스에 대한 기본적인 이해가 없는 경우, 먼저 해당 내용을 숙지하신 후...
-
다른 사람의 코드의 문제점 찾아주기
개요 저는 백준 온라인 저지의 질문 게시판에서 풀라는 문제는 안 풀고 오랜 기간 많은 답변을 해왔습니다. 그러면서 느꼈던 것 중 하나는 문제 풀이 실력과는 별도로 처음 보는 코드를 분석하는 실력이 많이 늘었다는 점입니다. 예전에는 타인의 코드를 읽는 것이 마냥 어렵기만 했다면, 지금은 그 코드가 제 코딩 스타일과 크게 다르더라도 작성자의 의도를 파악하며 보다 객관적으로 코드를 읽는 능력이 향상되어 더 빠르게 답변을 해줄 수 있게 되었습니다. 부분적으로는 제 코드를 돌아보고 디버깅을 하는 데에도 도움이 됐다고 생각합니다....
-
S/W 멤버십 기술 블로그 고치기
이 블로그에 있는 버그와 문제점을 고쳤습니다. 태그 시스템이 제대로 동작하지 않습니다. 거의 모든 태그를 눌러도 404 오류가 나타납니다. 태그 기능을 추가하였습니다. 일부 글의 작성자가 표시되지 않습니다. 모두 올바르게 표시되도록 수정하였습니다. 일부 글이 표시되지 않습니다. 모두 보이도록 수정하였습니다. 검색 기능이 동작하지 않습니다. 정상 동작하도록 수정하였습니다. 사실 저는 알고리즘 문제풀이를 주로 하고, 실제 소프트웨어 등의 코드를 다뤄 본 경험은 별로 없습니다. 그래서 소프트웨어 디버깅의 일종의 체험과 배움을 하는 것에 의의를 뒀습니다. 이 글은 “단순히 어떤 버그가 있었고...