일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- DBMS
- UNIX
- 전처리기
- 구조와 원리
- Pointer
- 약어
- go
- TiKV
- kernel
- TiDB
- Symbol
- bash
- UNIX Internals
- Preprocessor
- 컴퓨터 강좌
- DBMS 개발
- OS 커널
- Programming
- SQLite
- 커널
- 포인터변수
- 포인터
- getopts
- Windows via c/c++
- 한빛미디어
- newSQL
- Golang
- FreeBSD
- 함수포인터
- 긴옵션
- Today
- Total
목록2019/03 (2)
sonumb
ddd로 디버깅할 때, 실제 실행위치와 화면의 소스코드 라인이 맞지 않을 때ddd로 디버깅할 때, 현재 실제 디버깅하는 위치와 ddd에서 출력하는 소스코드의 위치가 서로 다를 때가 있다. 문제의 실제 원인은 LOCPATH라는 환경변수 때문이다. https://www.ibm.com/support/knowledgecenter/ko/ssw_aix_71/com.ibm.aix.nlsgdrf/understand_locale_environ_var.htm또한 ddd를 실행할 때도 LC_TIME 변수 역시 실행에 영향을 끼치지만, 코드라인의 위치를 다르게 트레이싱하는 문제는 LOCPATH 때문이다.따라서 환경변수를 LC_ALL=C 로 하여, ddd를 실행하면 모든 문제는 해결되지만, vim이나 다른 프로그램을 이용할 때..
프로그램이 죽는 현상 혹은 디버깅을 해야하는 어떤 상황을 재현하기 위해 gdb 내에서 실행하는 경우가 종종있다.그러나 이럴때 재현되지 않는 경우가 종종있다. 프로그램을 실행시킨다면, 또다시 오류상황이 발생.. -_-;이유야 여러가지가 있겠으나, 멀티쓰레드 환경, 디버깅 옵션 유무, 옵티마이징 레벨, 실행하던 하드웨어(CPU) 등등이 있다.여튼 이런 것을 디버거로 실행하는 것은, 벌레와의 전쟁에서 백전백패를 의미한다. 이럴땐 프로그램에 "죽는 조건 혹은 어떤 조건을 만족하는 순간이 온다면 디버깅툴로 attach하는 코드"를 기입하는 방법이 있다.그러나 gdb나 cgdb와 같이 CUI 프로그램을 다른 창에 띄워서 어태치하는 방법은 힘들다. 이럴땐 ddd라는 GUI로 된 디버깅 툴을 이용한다.아래 코드를 적절..