본문 바로가기

IT/linux72

valgrind, linux memory leak detection valgrind valgrind 는 DBI(Dynamic Binary Instrumentation) 도구이기 때문에 gdb attach 처럼 실행 중인 프로세스를 분석할 수 없다. DBI는 바이너리를 런타임(실행되고 있는 동안) 코드를 삽입하여 동작 분석한다. 코드를 삽입하여 동작을 분석하는 행위를 instrumentation 이라고 한다. 이는 valgrind 에 입력으로 들어가는 실행 코드를 실행 시간에 직접 가공하는 것을 의미한다. valgrind를 통한 분석 본인이 사용하는 valgrind 옵션과 사용법을 알아본다. $ valgrind --leak-resolution=high --leak-check=yes --show-reachable=yes --track-origins=yes --log-file.. 2023. 3. 21.
linux awk 예제 awk 예제 1. 파일에서 특정 문자열 검색 $ awk '/search_string/ {print}' filename.txt : filename.txt 파일에서 "search_string"이라는 문자열을 검색하고, 해당 문자열이 포함된 모든 행을 출력 2. 파일에서 특정 열 추출 $ awk '{print $2}' filename.txt : filename.txt 파일에서 두 번째 열을 출력 3. 파일에서 특정 조건에 맞는 행 추출 $ awk '$3 > 50 {print}' filename.txt : filename.txt 파일에서 세 번째 열의 값이 50보다 큰 모든 행을 출력 4. 파일에서 특정 패턴 치환 $ awk '{gsub(/old_string/, "new_string"); print}' file.. 2023. 3. 21.
man 명령어 주요 옵션 / option -f, -k, -K, -w man (manual) man 명령어 사용 시 주로 사용되는 옵션에 대해서 알아본다. -f, --whatis, equivalent to whatis whatis와 동일한 결과를 나타낸다. 대상 텍스트의 매뉴얼이 무엇이 있는지 나타난다. muabow@muabow-workspace:~$ man -f sleep sleep (1) - delay for a specified amount of time sleep (3) - sleep for a specified number of seconds -k, --apropos, equivalent to apropos 대상 텍스트가 포함된 모든 매뉴얼을 나타낸다. e.g.) sleep 으로 검색 시 매뉴얼에 sleep 이라는 키워드가 있는 모든 문서를 나타낸다. muabow.. 2022. 9. 20.
mplayer / slave mode, idle, standalone, pipe, command, cache MPLAYER mplayer slave mode - pipe 를 통한 command 전달 mode로 동작 ex) mplayer -slave 1. idle 동작 - mplayer 가 background process로 동작하여 command 전달 시 그에 해당하는 동작 수행. - idle 동작 시 pipe 를 반드시 지정해야 함. ex) mplayer -slave -idle -input file= 2. standalone 동작 - mplayer 실행 시 실행 할 파일/URL 을 입력 받아 동작. - pipe 지정 시 pipe 를 통한 command 전달 가능. ex) mplayer -slave –input file= 3. 비교 - idle 동작 시 background 로 커맨드만 받아 동작하므로 안정적으로.. 2022. 9. 9.
Bogomips 개요, 측정 방법 Bogomips 컴퓨터 프로세서의 수행 속도를 나타내는 리눅스 OS의 측정 단위이다. 밉스(Mips)는 1초 동안의 명령어 수행 회수를 컴퓨터 성능 평가 기준으로 계산하지만 컨텐트의 변화에 따라 측정 결과가 영향을 받는다. 보고밉스(BogoMips)는 1초 동안에 프로세서가 특정 프로그램을 반복하는 회수를 측정하는 것이다. bogomips 측정 예 CPU Intel® core™ I7 Intel® core™ i5-3317U ARM I.MX 515 ARM I.MX 283 MHz 1600 800 800 454 장비 Bogomips 5333 3392 799 226 측정 Bogomips 832 852 264 74 bogomips가 성능의 절대적인 지표는 아니지만 위의 표처럼 상대적으로 성능을 확인할 수 있다. 위.. 2022. 9. 9.
바이너리 동적 라이브러리 링크 확인, Dynamic linker 바이너리 동적 라이브러리 링크 확인, Dynamic linker readelf 명령을 이용하여 바이너리가 어떤 동적 라이브러리를 링크하고 있는지 확인해본다. 해당 명령어는 ELF files의 정보를 나타내고 각 옵션을 통해 다양한 정보를 취득할 수 있다. 본인은 여기서 동적 라이브러리 정보만 다룰 것이니 자세한 옵션 목록은 아래 man page를 참고하자. https://man7.org/linux/man-pages/man1/readelf.1.html readelf(1) - Linux manual page readelf(1) — Linux manual page READELF(1) GNU Development Tools READELF(1) NAME top readelf - display information.. 2022. 9. 7.
gcc warning case 정리 gcc warning case 정리 [-Waddress] 주소 표현의 의심스러운 사용에 대한 경고. void f (const char *x) { if (x == "abc") // warning: expression evaluates to false puts ("equal"); } void g (void) { if (!f) // warning: expression evaluates to false abort (); } [-Wimplicit-function-declaration] 함수를 명시적으로 선언하지 않은 채 사용한 경우에 경고. header include 누락, function declaration 누락 등.. 함수를 사용하기 전 명백하게 무엇인지 알려주지 않았다라는 의미. [-Wparentheses.. 2022. 9. 5.
ClearCase 개요와 활용 ClearCase 개요 IBM solution, Rational이 개발한 형상 관리 도구 - 라이프사이클 전반에서 파일, 디렉토리 및 기타 개발 자산을 관리 - 각 버전 이력에 대한 정보를 항상 기록하며 필요하면 버전 이력에 대한 보고서를 제시 - Release 시 마다 정확한 코드 복제를 보장 - 코드 버전의 분할(Branch) 및 통합(Merge) 기능 제공 ClearCase 핵심 키워드 키워드 의미 VOB Version Object Base View Workspace Element File or Directory Branch A way to make parallel development possible Label Tag Attribute Name/Value pair ClearCase 중요 기능 요소.. 2022. 9. 5.