sigsegv 검색을 통해 유입된 내역이 하나 보여서 잠깐 설명.
Unix 계열(Linux든 BSD든 OS X든)에서는 시그널(signal)이란게 있다. 자세한 설명은 배재. 그냥 프로그램과 OS 및 Shell 등 타 프로그램 (그리고 유저입력?) 사이에 메시지 등을 전달하기 위한 메카니즘이라고 하면 되려나. (설마 DOS나 Windows계열도 있으려나?)
이 시그널 중에 대표적인게 SIGINT와 SIGSEGV가 있다. 이름이 SIG로 시작되는데 Signal의 약자로 보면 되겠다.
SIGINT는 (오래되서 기억이 잘 안나는데) 흔히 Ctrl-c를 누르면 발생되는데 프로그램 종료를 위해 많이 캐치하는 시그널이다. INT의 의미는 인터럽트(Interrupt)로 기억한다...
SIGSEGV는 친구들 사이에서 '똥싸고 죽는다'라고 부른다. 길게 Segmentation Violation 혹은 Segmentation Fault라 불리우는 이 시그널은 '비정상종료' 혹은 '메모리엑세스 오류' 혹은 '미친짓' 등등 -_- 으로 인해 OS에 의해 강제로 종료될 때 발생하고, Unix 계열에선 이 경우 메모리덤프 파일인 core를 남기고 죽는다고 해서 '똥싸고 죽는다' 라고 표현한다. (core를 이용해 디버깅을 할 수 있는 친절한 유닉스 ㅠㅠ) 윈도우 계열에서는 보기싫은 에러 다이얼로그가 뜨면서 죽기 때문에 역시 '똥싸고 죽는구나' 라고 표현이 가능할지도...
요즘처럼 GUI가 대세인 시대에는 거의 안쓰이는 거겠지만 뭐 기록으로라도 남겨놓자. 후후후...
ps. 블로그이름에 SIGSEGV를 쓴 이유는 '빌어먹을 내 머리'를 위한 비유다 -ㅁ-
Popular Posts
-
제목이 약간의 오해가 있을 수도 있어서 좀 더 자세히 적어보자면, 앱 내부의 마우스나 키 입력을 받는게 아니라 앱 윈도우에 포커스가 없는 상태에서 마우스나 키보드 이벤트를 받기 위한 내용이다. 흔히 쓰이는 윈도우의 '키보드 후킹'이라는...
-
예전에 Vim에서 tags 파일 경로를 부모 디렉토리들로 지정해서 자동으로 태그를 지정하는 방법 을 포스팅 했던 적이 있다. 하지만 Emacs에서는 동일한 형태로 지정을 해서 사용하는게 안되었다. 이런 기능을 원했지만 검색으로 찾을 수는 없었다. ...
-
내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다. 이참에 옛날 옛적에 쓰던 구식 컴퓨터...
-
메소드(Method)란 클래스에 정의된 클래스 멤버 함수를 의미한다. 스위프트(Swift)에서는 클래스 뿐만 아니라 구조체에서도 동일하게 이 메소드를 정의 할 수 있다는 특징이 있다.
-
node.js 암초 2번째 이야기. 이번에는 node.js의 루프와 process.nextTick() 관한 이야기를 적어볼까 한다. (루프가 뭔지는 굳이 설명할 필요는 없을 것 같다.)
-
이번엔 iOS SDK 기반 Objective-C에서도 웹페이지를 비동기로 긁어오는 기능을 하는 코드를 메모해본다. (NS 계열 API이니 아이폰/아이패드/Mac OS X에서 다 쓸 수 있을 듯)
-
Q. 1.3과 1.12 중 어느 버전이 더 최신 버전인가요? A. 1.12가 더 최신버전입니다. 위의 같은 질문류를 커뮤니티에서 본 적이 있는데 놀랍게도 1.3을 1.12보다 더 높은 버전으로 생각하는 사람이 많은 것 같았다. 그래서 이번에는 버...
-
node.js 소개글에 따라 다니는 이야기는 비동기(asynchronous) 처리를 위한 이벤트 위주(event driven) 언어라는 점이다. 그리고 한 가지 더 따라다니는 소개는 '빠르고(performance) 확장(scalable)에 강하...
-
Swift 에서 C 포인터(Pointer)는 왜 쓰는가. 모호할 때도 있고 쓰기도 귀찮고 문제도 자주 일으키는 그 개념을 말이다. 그런데 답은 C 포인터 라는 이름에서 이미 나와있다. 당연히 C로 구현된 함수가 포인터를 사용하게 되니 이 함수를 쓰...
-
이 글은 새 위치 로 옮겨지며 이 곳에서는 더이상 유지보수되지 않습니다. 가까운 옛날(?) 이탈리아 여행을 다녀오고 나서 생긴 이상한 증상(?)이 있다. 바로 이탈리아식 화덕피자가 종종 땡기는 증상이다. 그래서 종종 집 주변 화덕피자 가게를 찾아보고 ...
Tags
Blog Archive
-
▼
2011
(273)
-
▼
2월
(39)
- 커맨드키(애플키)의 존재의 정당성!??
- MacPorts 기본 사용법 정리
- [Vim] Vim 설정 파일(vimrc) 및 플러그인 공유
- [iOS/Three20] TTNavigator with UITabBarController
- [iOS/Three20] TTTableViewController 의 기본
- [iOS/Three20] JSON Parser: extThree20JSON
- [iOS/Three20] TTNavigator 기초
- [iOS/Three20] Add to Project
- [Vim] ucs-bom, BOM(Byte Order Mark)
- [Emacs] Emacs 설정 파일 재로딩: reload-dotemacs
- [Emacs] anything.el
- [Python] Regular Expression API (정규표현식 API 기본)
- [Python] Directory(Folder) / File 목록 다루기
- SimpleNote + SimpleNote App + MarkDown으로 글 쓰기
- [Python] Dictionary 기본
- [Django] Unit Test 기본 정보
- [Python] 가끔 저지른 실수들
- [Vim] 윈도우에서 UTF-8을 적용하면 한글메시지가 깨지더라
- [Vim] OS 별 Vim 설정을 분리하기(?)
- [Vim] CTags를 이용한 코드 탐색에 관하여
- [Vim] Auto Word-Completion에 관한 설정
- [Vim] Configuration to Edit Multiple Files
- [Util] screen 기본 사용법 메모
- [Django] Query 명령어 (일부만) 메모
- [Vim] Plugin: snipMate - TextMate-style snippets f...
- [Vim] Plugin: FuzzyFinder
- [Java] Python의 string.split()은 어떻게?
- [Android/Java] Run shell command
- 폭풍 업데이트!
- [Python] struct 와 padding 에 대한 잡설
- SIGSEGV 란 용어에 대해
- [Django] 500 Error Page
- Mail User Agent에서는 iframe를 배척하는 걸까 (잡설)
- [Python] Log Detailed Exception
- [Python] Send mail attached HTML via sendmail
- [Python] Auto-Machine(?) APIs
- [Python] Logging
- [Python] Unicode/UTF-8
- [Django] Multiple Unittest Files
-
▼
2월
(39)
돼서
답글삭제