2018/07

    [SOLVE] valgrind: failed to start tool 'memcheck' for platform... ': No such file or directory

    valgrind source를 cross compile 하여 다른 platform에 포팅하려 할 때 발생한 문제입니다. lib, include, bin directory 모두 알맞은 경로에 설치해주고 실행하였을 때 아래와 같은 에러 문구가 나타납니다. $ valgrindvalgrind: failed to start tool 'memcheck' for platform 'arm64-linux': No such file or directory 이 경우 lib 경로 환경변수가 등록되지 않은 상태입니다.lib 설치된 경로를 VALGRIND_LIB 환경변수로 추가해주시면 문제 해결됩니다. $ export VALGRIND_LIB=/path/to/valgrind/lib 또는 .bashrc에 환경변수 추가해주셔도 됩니다.

    [valgrind] Memory debugging & profiling tool

    [valgrind] Memory debugging & profiling tool

    Valgrind는 리눅스 실행파일(excutable)을 디버깅하고 프로파일링할 수 있는 툴입니다. 오픈소스이며 C/C++ 로 작성된 프로그램을 디버깅하는데 매우 유용하죠. 간단한 사용법과 몇 가지 기초적인 옵션에 대해 설명드리고자 합니다. 1. 설치$ sudo apt install valgrind$ sudo apt install massif-visualizer 2. 예제 프로그램valgrind를 이용해 프로파일링 하기 전에 예제 프로그램을 하나 작성하였습니다. 코드는 아래와 같습니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include #include int t..

    [TOCTOU] Time of check to time of use 문제

    아래와 같은 코드는 TOCTOU 문제를 야기할 수 있습니다. TOCTOU 문제는 자주 발생할 수 있는 문제인데요, TOCTOU 문제가 무엇인지 어떤 상황에 발생할 수 있는 살펴보겠습니다. TOCTOU는 'Time of check to time of use' 의 약자입니다. 소프트웨어 개발 시 조건과 조건의 결과 사이에서 시스템의 변경을 이용한 Race condition이라고 할 수 있습니다. 특히 어떤 리소스를 사용하기 전에 리소스 상태를 체크하는 로직 사이에서 많이 발생할 수 있습니다. 이해가 잘 안되실 수 있으니 아래 코드를 예시로 말씀드리겠습니다. access() 호출 이후 unlink를 호출합니다. 의도는 access로 파일이 존재한다면 unlink로 파일을 제거하려는 코드인 것 같습니다. 여기서..

    [cloc] 코드의 LOC 계산하기

    가끔 프로젝트의 LOC가 궁금할 때가 있다. IDE의 라인 수를 살펴봐도 되지만, 순수하게 White line이나 주석등은 제외한 코드의 길이만 확인하고자 할 때 cloc 을 사용한다. [설치]$ sudo apt install cloc [실행]Framework란 디렉토리에 포함된 코드를 확인하고자 한다.$ cloc Framework 98 text files. 94 unique files. 17 files ignored.http://cloc.sourceforge.net v 1.60 T=0.18 s (466.8 files/s, 45135.7 lines/s)-------------------------------------------------------------------------------Languag..

    [multitail] 여러 Log 동시 확인하기

    [multitail] 여러 Log 동시 확인하기

    로그를 확인할 때 tail 명령어를 많이 사용합니다. tail 명령어를 이용 시 여러 개의 로그를 동시에 보고싶지만 하나의 터미널 창에서는 하나의 로그만 확인 가능합니다. 이러한 점을 보완한 툴이 multitail입니다. 아래 명령어로 먼저 설치해 줍니다.$ sudo apt install multitail 사용방법은 간단합니다.$ multitail {log file} {log file} 예를 들어,$ multitail /var/log/apache2/access.log /var/log/apach2/error.log 위 명령어를 수행 시 아래와 같은 결과를 얻을 수 있습니다. 감사합니다.

    [date] 시간 확인 및 변경하기

    현재 시간 확인하기$ date2018. 07. 12. (목) 17:18:35 KST 현재 시간 변경하기 (년/월/일/시간)# date +%Y%m%d -s "20180728"# date +%T -s "17:18:00"