본문 바로가기

다양한 TIP205

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.
[Linux] IP와 계정으로 접근제어하기(sshd) ssh로 접근하는 계정에 대해 제한을 걸 수 있다. sshd(ssh daemon)은 /etc/ssh/sshd_conf에서 설정한 값으로 동작한다. 여러 옵션 중 하나를 설명한다. 설명할 옵션은 "AllowUsers" 이다. 허용할 사용자만을 넣어줄 수 있다. 예시 : AllowUsers test@192.168.22.156 => test라는 계정은 192.168.22.156라는 IP로만 접근할 수 있다. ※ 주의할 점 AllowUsers를 설정하면 모든 계정에 적용되기 때문에 사용하는 계정을 모두 넣어줘야한다. 가령 root로 접근을 해야한다면 AllowUsers root 도 아래줄에 꼭 써주자. 이제 config를 수정했으니 재시작을 해야한다. 재시작 명령어는 아래와 같다. sudo systemctl r.. 2019. 10. 8.
반응형