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
-
이번 글은 굉장히 유명한 수학 함수 3가지를 적어보는 글입니다. 그리고 오랜만에 구어체가 아닌 존대말(?)로 쓰는 글이기도 하겠네요. 이번에 언급하는 함수 세 가지, 즉 ceil(), floor(), round() 함수는 C 언어 시절부터 쓰이...
-
Python 코딩하면서 겪게 된 실수를 한번 정리해 볼까.
-
일반적으로 OOP에서는 생성자(Constructor)와 파괴자(Destructor) 라는 개념이 있다. 객체의 탄생과 사라지는 시점에 맞춰 시작과 끝에 호출되는 메소드로 설명되는데, 스위프트에서는 초기화(Initialization)와 마무리(Deini...
-
Emacs와 Vim은 성전(?)이라 불릴 정도의 치열한 영역싸움(거기다 감정싸움 까지도 -ㅁ-)을 벌이는 상대다. 그런데 거기에 이단이 있으니, 바로 Emacs를 vi(vim이 아니다)와 비슷하게 바꿔주는 모드가 있다. 바로 viper-mode 이다....
-
내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다. 이참에 옛날 옛적에 쓰던 구식 컴퓨터...
-
Vim에서 한글을 입력하다 ESC를 눌러서 편집모드를 빠져 나와서 다른 커맨드를 입력하려 할 때 동작 안하는 경우가 있다. 한글 상태라서 키 입력을 제대로 못 알아먹는 상태인데 수동으로 영문으로 바꿔주면 되긴 된다. 이런 불편함으로 인해 영어만을 사용...
-
node.js 는 비동기(asynchronous) 모델의 코딩을 하기 쉽도록 디자인 되어 있다. 하지만 그렇다고 무작정 쉽게 코딩이 가능한건 아니다. 기존의 동기화 기반의 멀티스레드 모델을 코딩 했거나 함수나 메서드 등의 리턴값을 이용해 로직을 작성하...
-
스위프트(Swift)는 Objective-C의 많은 기능들을 새롭게 포장해서 제공해 주고 있는데 프로토콜도 그 중 하나이다. 이 프로토콜(Protocols)과 딜리게이션 패턴(Deleagation Pattern)에 대해 간단히 정리해 본다.
-
XCode에 포함된건지 OSX에 기본적으로 배포되는지는 모르겠지만, 일단 기본적으로 FileMerge라는 머지툴을 이용 할 수 있다. 이걸 터미널에서 실행시킬 때는 opendiff 명령을 이용할 수 있다.
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)
돼서
답글삭제