본문 바로가기

Programming

[엑셀] 특정값의 행을 찾아서 그 행에 매칭되는 값 반환하기 =INDEX(F:G,MATCH(B2,F:F,0),2) =INDEX(A, B, C)A의 테이블에서 B 행의 C 열의 값을 리턴 MATCH(A, B, C)A 값을 B 에서 비교해서 C = 0 : 정확히 같은 값을C = 1 : 보다 작은 값을C= -1 : 보다 큰 값을가진 행을 리턴함. 더보기
objdump 실행파일 및 library 의 symbol list 출력하기 objdump 에 T 옵션을 사용하면 symbol 이 strip 된 파일에서도 리스트를 출력할 수 있습니다. # arm-eabi-objdump -T ./libsqlite.so ...00000000 DF *UND*00000000 HMAC_Update00000000 DF *UND*00000000 HMAC_Final00000000 DF *UND*00000000 HMAC_CTX_cleanup0000b4f4 g DF .text00000140 sqlcipher_page_cipher00000000 DF *UND*00000000 EVP_CipherInit00000000 DF *UND*00000000 EVP_CIPHER_CTX_set_padding00000000 DF *UND*00000000 EVP_CipherUpdat.. 더보기
gdb 로 Android nexus5 debugging 하기 - GDB server 를 사용해야 하는 이유.: Android local 에서 gdb 를 직접 실행하면 필요한 symbol 정보 매칭이 안되어서 attach 한 process 가 SIGV error 를 내면서 종료가 됩니다. - cross compile 로 arm 용 gdb / gdb server 구하기 http://searchme.tistory.com/37 ※ 이 디버깅 방법에서 gdb 는 사용하지 않습니다. - adb push 로 PC에서 Android device 에 gdbserver 다운로드 하기 # adb push ./gdbserver /data/local/tmp/ - arm-gnu-eabi toolchain 받기git clone https://android.googlesource.com/pl.. 더보기
Get(다운로드) android L-preview source code. 구글이 android L-preview 에 대한 source code branch 를 공개하였습니다.이 포스팅에서는 L-preview 를 포함한 google android source code 다운받는 법을 한글로 간단히 기술하겠습니다. 다만, 아직 L-preview 의 source code 는 완전하지 않은것으로 보입니다.구글이 공개한 Nexus5 의 바이너리에서는 SQLite 가 3.7.14 버전이었던데 비해아직 git 에서 받은 소스코드에는 이전 버전인 3.7.11 이 올라와 있습니다. https://android.googlesource.com/platform/manifest 사이트에 접속하면 많은 브랜치 명들을 볼 수 있습니다. 왼쪽에 more 를 누르고 나오는 branch 명 중에서 원하는 것을.. 더보기
Get root authority on Android-L on Nexus5, step by step 참조 : http://www.ibtimes.co.uk/root-android-l-developer-preview-nexus-5-nexus-7-2013-patched-supersu-1454567 I will explain how to get root authority of android-L on Nexus5, step by step. First of all, If you want to know how to install android-L in my phone, Plz refer to this page.http://decdream.tistory.com/390 1. download TWRP Recovery binary.url : https://mega.co.nz/#!Xd9VHAbD!LPe7_CZYWIguxGv.. 더보기
Install android L preview on Nexus 5, step by step Go to below site.아래 사이트에 들어갑니다. http://developer.android.com/preview/setup-sdk.html Click the Download link of Nexus5 and download binary.Nexus 5 의 Download link 를 눌러서 바이너리를 다운받습니다. un-compress the tgz file.tgz 파일의 압축을 해제 합니다. tar zxvf hammerhead-lpv79-preview-ac1d8a8e.tgz Press volume down and power key same time and go to download mode.Nexus 를 volume down 과 power key 를 눌러서 download mode 로 진입 합.. 더보기
c code 개발을 위한 나의 vim setting 제가 사용하고 있는 vi setting 입니다.2~3일 걸쳐 setting 한만큼 한번에 쉽게 최적의 셋팅을 할 수 있도록 수정파일을 모아서 첨부하였습니다. apt-get install ctags cscope vim-runtime vim-gui-common 으로 설치하고 첨부파일을 풀어서 각각 아래 폴더에 복사하면 됩니다. /usr/bin/mkcscope.sh/etc/vim/vimrc/usr/share/vim/vim73/plugin//usr/share/vim/vim73/colors/ vi 버전은 다음과 같습니다. # vi --versionVIM - Vi IMproved 7.3 (2010 Aug 15, compiled May 4 2012 04:22:36) 소스 폴더가 있는곳에서mkcscope.sh를 실행하.. 더보기
"dereferencing pointer to incomplete type" build error - root cause of build error "dereferencing pointer to incomplete type" This error occur that can't find struct. 1. didn't describe struct.2. struct use upper line before describe struct.ex) line 10 : use struct line 30 : describe struct3. miss #include file "dereferencing pointer to incomplete type"빌드애러가 났을때 원인 1. struct 를 정의하지 않았다.2. struct 를 정의하는 라인보다 위에서 사용했다.ex) line 10 : struct 사용line 30 : .. 더보기
[gdb] handle gdb error "single stepping until exit ... from function which has no line number information" I meet gdb error.GDB print this error instead of print current line of source code.GDB 를 사용하는 중 소스코드가 안보이고 아래와 같은 애러가 발생하였습니다. single stepping until exit ... from function which has no line number information so I introduce a cool solution to you.이것에 대한 해법을 적어보도록 하겠습니다. I already add '-g' option on my Makefile. and I add '-ggdb -O0' option regarding googleing result. but main cause is GDB versio.. 더보기
TrueType core fonts for the Web EULA 화면에서 멈춤 현상 ┌─────────────────┤ Configuring ttf-mscorefonts-installer ├─────────────────┐ │ │ │ TrueType core fonts for the Web EULA │ │ END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE │ │ IMPORTANT-READ CAREFULLY: This Microsoft End-User License Agreement │ ("EULA") is a legal agreement between you (either an individual or a │ single entity) and Microsoft Corporation for the Microsoft software │ accompan.. 더보기
엑셀(excel) - 특정 문자가 포함되지 않는 문자열의 개수 구하기 찾고자 하는 문자열 앞에 ""& 를 붙이면 됩니다. A2~A12554 사이에서 .db 로 끝나지 않는 열의 갯수 구하기 =COUNTIF(A2:A12554,""&"*.db") 더보기
[linux platform] LD_PRELOAD 를 이용한 android 에서의 library 교체 library 를 수정하는 개발을 할때,매번 package 로 묶어서 전체 이미지를 다운로드 하는것은 많은 시간을 소모하게 한다. 아래 방법을 사용하면, 내가 build 한 library 만 바꾸면서system reboot 이나 전체 image download 없이 디버깅을 할때 아주 유용한 방법이다. adb shell 에서 다음과 같이 입력하면,원래 설치되어 있는 library 파일이 아닌, 내가 지정한 library 파일을 load 해서 실행된다. - LD_PRELOAD 의 입력방법1. 모든 프로그램이 내가 만든 library 를 사용하기 원할때..LD_PRELOAD = "preload 되기 원하는 so 파일 경로" 2. 특정 프로그램만 내가 만든 library 를 사용하기 원할때..LD_PRELOA.. 더보기
현재 프로세스의 이름 출력, print current process name linux platform side 에서 현재 프로세스 이름을 출력하는 방법 입니다. extern char *__progname;char* get_process_name(){return __progname;} 더보기
ubuntu 에서 다른 원격터미널(ssh) 에 접속하기 여기에 보면 몇몇 client 를 설치하는 방법이 소개되어 있다.http://www.techrepublic.com/blog/five-apps/five-easy-to-use-secure-shell-clients/ 하지만.. 터미널 자체에서 접속하는 것이 방법도 쉽고 나쁘지 않다. 접속하는 ubuntu 에는 다음을 설치한다.apt-get install openssh-client 접속되는 ubuntu 에는 다음이 설치되어 있어야 한다.apt-get install openssh-server 접속 명령어는 터미널에서 다음과 같이 입력하면 된다. ssh 172.16.244.128 -l root 원격지에서 서버의 ssh 접속 password 변경하기 ssh -t [user]@[server-name-here] pass.. 더보기
ubuntu - windows에서 사용했던 새로운 hdd 추가하기 HDD H/W 연결 상태 보기http://blog.daum.net/haha25/5390106 참조함아래의 명령어를 입력해서 현재 시스템에 장착된 하드디스크(와 부록으로 ODD까지)의 모델을 출력해봅니다.cat /proc/scsi/scsi Attached devices:Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: Samsung SSD 840 Rev: EXT0 Type: Direct-Access ANSI SCSI revision: 05Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST1000DM003-1CH1 Rev: CC49 Type: Direct-Access ANSI SCSI revisio.. 더보기
유용한 윈도우 단축키 프로그램 : HotKeyz 상당히 쓸만한 단축키 프로그램 입니다. 참고로 저는 다음과 같이 셋팅해서 메모장, 지메일, 구글켈린더 등을 단축키로 켜고 있습니다. 크롬 기반으로 실행시키며 옵션은 다음과 같이 주면 됩니다. 지메일 : --app=https://www.gmail.com구글켈린더 : --app=https://www.google.com/calendar/render네이버(새창) : http://www.naver.com --new-window네이버사전 : --app=http://endic.naver.com/popManager.nhn?sLn=kr&m=miniPopMain --app-window-size=1400,760 저의 셋팅이 추가된 실행 파일 입니다.설치도 필요 없습니다. 그저 윈도우 시작프로그램에 등록만 해주면 윈도우 시작.. 더보기
윈도우창 간편 이동 프로그램, 가상 데스크탑 프로그램 http://blog.daum.net/madbear/72 단축키로 듀얼 모니터 상에서 창 배치를 자유롭게 바꿀 수 있는 프로그램입니다.윈도우 + 방향키 기능과 비슷한데 좀 더 새밀한 이동이 가능해 졌다고 생각하면 쉬울 것입니다. 프로그램을 제공한 홈페이지 상태가 이상하여 직접 링크 걸어놓습니다. http://doogie.tistory.com/89 자세한 소개는 위 링크에서 확인하세요.가상데스크 탑을 만들어서 작업을 분리해서 할 수 있게 해줍니다. 더보기
vi 에서 cscope 편하게 호출하도록 setting 하기 > // 내 계정 적용 수정사항vi ~/.vimrc// 전체 적용 수정사항vi /etc/vim/vimrc // 전체 적용 플러그 인/usr/share/vim/vim73/plugin/cscope_maps.vim// 내 계정 적용 플러그인~/.vim/plugin cscope_maps.vim 를 다운받아서/usr/share/vim/vim73/plugin/cscope_maps.vim에 저장 vi 실행하면 아래와 같은 키를 쓸 수 있다. Ctrl+\, s [or 0] : cs find s C 심볼 검색Ctrl+\, g [or 1] : cs find g 전역 선언만 검색Ctrl+\, d [or 2] : cs find d 이 함수에 의해 호출되는 함수들 검색Ctrl+\, c [or 3] : cs find c 이 함수.. 더보기
virtual address to physical address (64bit linux) linux 64bit 에서 page address 변환에 대해서 한눈에 보기 쉽게 그려보았습니다. 사용할때는 꼭 출처를 명시해 주기 바랍니다. pde64_table = (pde64_t *)__va(BASE_TO_PAGE_ADDR(pdpe64_table->pd_base_addr) + (PDE64_INDEX(fault_addr)*sizeof(pde64_t))); if(!pde64_table->present) { uintptr_t tmp_pte64_table; tmp_pte64_table = (uintptr_t)petmem_smart_alloc_pages(map, (uintptr_t)NULL, (pte64_t *)NULL); memset((void *)__va(tmp_pte64_table), 0, PAGE_S.. 더보기
Crash Consistency를 유지하기 위한 방법 (fsck 와 journaling 의 자세한 소개) 얼마전에 소개한 Operating Systems: Three Easy Pieces 책에서 fsck 와 journaling 에 대해 소개한 챕터를 전체 번역하고 요약하였습니다.개인적으로 이 부분에 대한 지식이 필요한 사람들에게 크게 유용한 자료가 될 것이라 생각합니다. 특히, filesystem 의 journaling mode 들에 동작에 대해서, 비교적 상세하게 기술하였기 때문에 이 부분을 이해하는데 큰 도움이 되었습니다. 원문 문서 링크 : http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf번역본 전체 : ※ 사용하시면 꼭 출처를 밝히시기 바랍니다. > - 오래 사용하던 방식임. - 파일시스템이 in-consistency 한 상태가 되도록 놔두었다가 .. 더보기
filesystem 기본을 공부하기에 좋은 책 (operating systems - three easy pieces) 파일 시스템을 공부하는데 매우 좋은 사이트를 추천하고자 한다.위 사이트에 들어가면 아래 책을 모두 pdf 형태로 다운 받을 수 있는데,설명이 매우 친절한 편이다. 이중 file system 을 다룬 Persistence 챕터를 읽고 있는 중인데,어떠한 인터넷 문서보다 차근차근 설명이 잘 되어 있다. 영어 문서에 거부감이 없다면,한번씩 읽어보자. http://pages.cs.wisc.edu/~remzi/OSTEP/ 더보기
SQLite 의 db-shm file 은? SQLite 를 사용하는 system 에 SQLite DB 인 .db file 외에 .db-wal 과 .db-shm 파일을 발견할 수 있다.이는 SQLite 의 WAL mode 를 사용할때 사용 하는 파일이고, 특히, .db-shm 은 SQLite 3.7 이후에 일시적으로 사용하게 된 wal-index file 이다.자새한 설명은 아래 링크와 조잡한? 해석을 참고하면 된다. http://stackoverflow.com/questions/7778723/what-are-the-db-shm-and-db-wal-extensions-in-sqlite-databases These files(db-shm) are a new feature of SQLite 3.7. http://www.sqlite.org/filefor.. 더보기
읽어볼 꺼리 linux file system 에 대한 한글 자료.http://bulldozer121.tistory.com/19 nand 에 대한 한글자료http://blog.naver.com/csn96?Redirect=Log&logNo=120067004138 git 에 대한 이야기http://getpocket.com/a/read/593491143 더보기
GDB 명령어 아래 사이트에서 조금 도움을 받았다.하지만, 잘못된 정보나 보충할 부분도 있어서 추가해 본다.http://hoyeden.blog.me/20206894205http://kthan.tistory.com/entry/Linux%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%B2%84%EA%B9%85%EC%9D%84-%EC%9C%84%ED%95%9C-gdb-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A4%91%EA%B8%89 사용을 하려면 먼저 대상이 되는 process 를 -g 옵션으로 컴파일 해야 한다. 대상 process 가 다수의 parameter(argument) 으로 실행된다면, 아래와 같이 --.. 더보기
gdb gui debugger 인 insight 사용하기 (Ubuntu 12.04.4) gdb 는 linux 에서 process 를 debug 하기 위한 debugger 이다.여기에 GUI 를 제공하는 것들은 DDD / insight 등이 있는데, 이중 insight 를 사용해 보았다. 마치 윈도우 개발환경을 보는것 같은 편리한 환경을 제공해 준다. 환경은 ubuntu 12.04.4 LTS 버전이다. 아래 사이트에서 insight 소스 코드를 다운로드 한다. http://sourceware.org/insight/ 여러 버전들이 있는데, 이중 마지막 버전은 ubuntu 에서 요상한 애러가 발생하고instight-6.8-1a.tar.bz2 버전을 받아야 정상 동작한다. 아래 블로그의 도움을 받아서 몇가지 패키지를 설치했다.http://minimonk.net/1639이분은 결국 실패하신것 같은데.. 더보기
tistory 에 adsense 광고 넣기 - 백업 제 홈페이지에 들어가 있는 광고 코드 입니다. 백업용 및 참고용으로 게제합니다. 굵은 글씨는 기준이 되는 코드 입니다. addthis 플로팅 소셜 공유 메뉴 LinkWithin 이미지 썸네일 링크 위젯 달기http://shuetree.tistory.com/117 나의 블로그를 네이버가 분석해준다.http://haeho.com/142 ''에 해당되는 글 건 사이드바 편집 메뉴에서 넣으면 됩니다. 왼쪽 플로팅 추천 메뉴인데... 넣으면 하단에만 나오는 오류가 나는것을 수정함.http://snowsummer.tistory.com/20 ->에러가 나서 하단에만 나오는 오류 코드 -> 수정코드... 이나 크롬에서 메뉴가 잘 안눌러지는 오류 왼쪽 플로팅 광고 구름태그 넣기http://snowsummer.tistor.. 더보기
ARM 의 TLB 운용에 대한 간단 정리 ARM 의 TLB 운용에 대해서 읽어본것들을 정리 하였습니다.내용은 arm 사이트의 있는 내용을 조악하게 번역한 수준입니다.도움이 될것 같아서 사이트에 올립니다. 각 키워드 중심으로 보시면 됩니다. set-associative regionlockdown regionMicroTLBMainTLBpage walkTLB miss 내용은 ARM coretex A9 기준입니다. TLB 에 들어있는 매칭 table 들을 TLB entry 라고 한다.ARM Main TLB 는 set-associative region 과 lockdown region 이 있다. - Invalidate TLB operations 는 set-associative region 에 이는 TLB entry 들만 무효화 한다. - .. 더보기
File System의 개요 원문 : http://cafe.naver.com/ghson/164 파일시스템을 이해하는데 기초 자료로서 너무나 설명이 잘 되어 있다.자료 보존 차원에서 옮겨 왔다. 파일시스템은 '6.device file의 개요'에서 설명한 바와 같이 섹터로 나누어진 물리적인 디스크를 운영체제가 사용하기 좋게 블럭단위로 나누어 각 블럭에 주소를 부여함으로써 운영체제가 디스크를 관리할 수 있게끔 디스크에 지도를 그리는 작업이라 할 수 있다. 1. 파일시스템의 구조 파일시스템은 루트디스크를 시작으로 디렉토리 트리나 계층구조로 이루어지며, 각 파일시스템은 물리적으로 같은 디스크에 존재할 수도 있고 다른 디스크에 따로 존재할 수 있다. 또한 각 파일시스템안에는 크게 User Data와 Meta Data로 구분되는 구조로 관리되며.. 더보기
한/영/일 언어 선택 상태를 마우스 포인트에 표시해주는 프로그램 마우스 커서에 현재 언어와 영어 소문자 / 대문자 상태를 표시해 주는 프로그램입니다. 한/영을 전환해서 사용할때마다, 현재 언어 상태를 몰라서 쓰고 지우고를 반복하였는데,이 프로그램 덕분에 매우 편하게 작업을 할 수 있게 되었습니다. 작업표시줄 창에서 설정창을 열어서 아래와 같이 설정도 가능합니다. ※ 웹상에서 히라가나, 카타카나 표시가 잘 안되는 경우 다음 명령을 실행해 주세요. 시작 → 실행 → regsvr32.exe /u %SystemRoot%\system32\msctf.dll 다운로드 -> 소리 알림을 하면 음성으로도 알려주는데,기본 소리가 별로 마음에 안들어서 조금 차분한 소리로 변경했습니다. 조금 작은 소리를 원하는 분은 아래버전으로 받으세요. 더보기
mmap 을 이용한 process memory mapping 원문 : http://naito.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%A7%A4%ED%95%91memory-mapping 공부하면서 더 내용추가를 할 예정이다. 프로세스 메모리 매핑 대량의 데이터를 처리하는 하드웨어를 다루는 DD작성시 mmap은 필수적으로 구현해야.. app에서 dd로 hw를 제어할때 read,write,ioctl은 프로세스 메모리공간과 커널 메모리 공간사이의 메모리 전달과정이 수반되기 때문에 매우 비효율적이다. 고로 mmap을 이용해 직접 hw의 io주소 공간을 메모리 복사없이 직접적으로 사용할 수 있다. mmap함수는 메모리 주소를 이용해 파일에 접근하도록 하는 함수다. 그러나 디바이.. 더보기