본문 바로가기

다양한 TIP206

Ubuntu 설치 후 apt-get update 실패시 확인할 것 우분투 서버용을 설치해보았다. ubuntu-18.04.3-live-server-amd64 처음 설치시 ssh 설정을 하지 않았기 때문에 apt-get update 후 apt-get install ssh를 하려고 했다. 하지만 아래와 같이 설치 실패.. 원인은 바로 nameserver에 있었다. /etc/resolv.conf 파일에 아래와 같이 nameserver를 추가한 후 재시도 하면 된다. nameserver 8.8.8.8 (구글) 다른 네임서버를 알고 있거나 설정해서 사용한다면, 해당 네임서버를 등록하면 된다. 2019. 11. 18.
Linux Heap Memory 영역 해제(진짜 해제) Heap Memory를 사용하여 new, delete를 모두 다 했다. 하지만 stl을 사용하는 부분에 넣어왔을 때는 프로세스에서 메모리가 그대로 사용되고, 줄어들지 않았다. OS가 반환하지 않는 것으로 보이는데, 코드상으로 정확히 메모리 해제를 했기 때문에 코드상 문제는 없어보였다. 그럼 코드상 leak은 아닌데 캐시하고 있는건가를 보기 위해 해당 사이즈만큼 다시 new을 했을 때를 보았다. 결과는 추가적으로 메모리가 늘어나지 않았다. 이에 따라 stl에서 메모리를 물고 있는 것처럼 보였다. 이걸 OS가 반환해주지 않는 건지 stl 에서 물고 있는건지 모르겠다. 그러던 중 malloc_trim 함수를 찾았다. 이 함수는 코드상 해제했지만, 프로세스에서 잡고 있는 메모리를 free memory로 돌려준다.. 2019. 10. 23.
gdb 내용 출력방법(batch) 코어덤프가 많이 남아있는 상황에서 디버깅을 할 때 난감할 것이다. 이유는 코어덤프 종류가 하나인가 여러개인가부터 파악하기에 너무 양이 많기 때문이다. 코어덤프들의 bt(backtrace)를 모두 출력하면 같은 녀석인지 아닌지 바로 판별할 수 있을 것이다. 이에 gdb 내용을 모두 출력하는 방법을 소개한다. gdb 는 기본적으로 코어덤프 파일과 함께 해당 binary를 인자로 넣어주면 된다. ex) gdb -c coredump_file test_bin /var/tmp/coredump/ 폴더에 아래와 같이 5개의 파일이 있다고 가정한다. core.1 core.2 core.3 core.4 core.5 하나씩 보려면 아래와 같이 명령어를 쳐야한다. gdb -c core.1 test_bin gdb -c core... 2019. 10. 17.
Python string 개행 삭제(rstrip) python으로 string을 처리하다보면 개행이든 space든 삭제해야하는 경우가 있다. 그럴 때 사용하는 명령어는 rstrip()이다. rstrip 예시 data_str = "test rstrip\n" data_str2 = "test rstrip \n" print( "[" + data_str.rstrip() + "]") print( "[" + data_str2.rstrip() + "]") print( "[" + data_str.rstrip('\n') + "]") print( "[" + data_str2.rstrip('\n') + "]") 결과 python3 rstrip.py [test rstrip] [test rstrip] [test rstrip] [test rstrip ] 즉, Default로 rs.. 2019. 10. 11.
반응형