FILE* fp = fopen("text.txt", "rt");
if(fp == NULL){
exit(-1);
}
fseek(fp, 0L, SEEK_END);
unsigned file_size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
FILE* fp = fopen("text.txt", "rt");
if(fp == NULL){
exit(-1);
}
fseek(fp, 0L, SEEK_END);
unsigned file_size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
1. android dalvik debugging
디버깅은 개발에 있어서 정말 중요하다.
달빅을 개발할 때 버추얼 머신 디버깅을 하면서 개발 효율이 많이 올라갔었다.
그당시 참고 사이트.
http://androidkr.blogspot.kr/2010/10/android-gdb-dalvik-vm.html
2. android art debugging
dalvik은 버추얼 머신위에서 어플리케이션이 돌아가기때문에 달빅을 디버깅을 하면 된다. 어플리케이션을 돌리는 프로그램이 app_process 이므로 이것을 시작으로 디버깅을 시작했다.
현재 내가 하는 것은 art에서 돌아가는 시스템 프로그램들이다.
3. 준비물 확인
7. 머신에서 해야할 일
안드로이드 쉘에 접속한다.
$adb shell
디버깅 하고자 하는 프로그램을 실행한다. 여기서 프로그램은 안드로이드 어플리케이션이 아닌 art의 프로그램이다.
이 프로그램의 PID를 확인한다.
#ps
이 프로그램을 gdbserver에 등록한다.
#gdbserver 163.152.73.73:2345 --attach 3403
위에서 IP주소는 내 서버 호스트의 IP 주소이고 port는 6.에서 설정한 port이다. --attach 뒤의 숫자는 디버깅할 프로그램의 PID.
다음과 같이 메세지가 나온다.
gdbserver 163.152.73.73:2345 --attach 3332
Attached; pid = 3332
Listening on port 2345
Remote debugging from host 163.152.73.73
이제 호스트에서 디버깅을 하면 된다.
8. 호스트에서 해야할 일
머신과 통신할 gdb가 있어야 한다.
나의 경우는 arm 머신이기 때문에 다음의 gdb를 이용한다.
prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-gdb
이때 7에서 실행하는 프로그램을 명시해 주어야 한다. art에서 사용하는 프로그램 대부분은 다음 path에 있다.
out/target/product/flo/system/bin
adb를 디버깅한다고 가정하면.....
$android-5.0.1_r1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-gdb out/target/product/flo/symbols/system/bin/adb
와 같다.
그렇게 되면 gdb 가 실행이 된다.
그리고 나서 이 프로그램의 symbol들을 알 수 있는 path를 지정해 준다.
$set solib-search-path out/target/product/flo/symbols/system/lib
이제 gdbserver에 접속하도록 하자.
(gdb) target remote 163.152.73.82:2345
위에서 IP주소는 나의 허브 아이피 주소이고, 포트는 머신으로 포워딩된 포트이다.
Remote debugging using 163.152.73.82:2345
위와 같이 메세지가 나오면서 연결이 된다.
기타 사항
맨처음에 가장 고생했던 것.
머신에서 gdbserver를 실행하려고 하면 계속 다음과 같은 메세지를 뱉었다.
Cannot attach to lwp 3403: Operation not permitted (1)
Exiting
그 이유는 내가 디버깅 하고자 한 프로그램이 root권한을 필요로 했던것.
이를 해결 하기 위해 adb를 root 권한으로 실행한다.
$adb root
$adb shell
이후에 안드로이드 쉘 프롬프트가 root로 변한 것을 볼 수 있고, 위와 같은 에러도 발생하지 않았다.
nexus 5를 위한 Android 4.4 빌드하기 2. 소스코드 다운로드 (0) | 2014.07.09 |
---|---|
nexus 5를 위한 Android 4.4 빌드하기 1. 빌드 환경 설정. (0) | 2014.07.08 |
android IP 확인 (0) | 2014.05.19 |
소스 폴더를 make를 이용해 빌드를 할 때 특정 파일만 컴파일 옵션을 조절하고 싶을 때가 있다.
make파일을 수정 해도 되지만 더 간단한 방법이 있어 소개한다.
파일 처음에 다음을 입력하면 된다.
#pragma GCC optimize ("0")
이것은 컴파일 옵션을 -O0로 하라는 것이고 1, 2, 3중 하나를 적으면 된다.
리눅스 무료 HTML5 편집기 Aptana (0) | 2014.08.02 |
---|---|
이미지 편집 프로그램 김프 (0) | 2014.08.02 |
java version 변경 (0) | 2014.07.15 |
Sun/Oracle JDK 다운로드 및 설치 (0) | 2014.07.09 |
linux 파일 redirection (0) | 2014.05.19 |
HTML5 편집을 위해 편집 프로그램이 필요하다.
보통 MS의 visualstudio를 사용하거나 Adobe의 dreamweaver를 사용하게 된다.
하지만 무료 프로그램도 좋은 것이 있다. 그중 하나인 Aptana를 소개한다.
인터넷에서 Aptana를 검색하고
다운로드를 눌러준다.
그러면 자신의 OS에 맞게 다운로드를 할 수 있다.
eclipse의 plug-in형태로 받을 수도 있는데 그냥 풀버젼으로 받아서 사용하자.
다운로드 받은 압축파일을 풀어 주고
AptanaStudio3을 실행하면 된다.
혹시 위와 같은 메세지가 뜬다면 jre나 jdk를 설치해 주면 된다.
워크스페이스를 설정해 준다.
일단 프로젝트를 만들고 테스트를 해보자.
프로젝트가 만들어 졌다. 프로젝트를 우클릭한후 new from template->HTML->HTML5를 누르면 HTML5형식의 파일이 만들어 진다.
만들어진 파일. 이 파일을 실행하면 다음과 같은 페이지가 나온다.
언어를 ko로 바꾸어 주고 중간에 한글을 넣어보자.
한글 출력도 잘 된다.
자신의 원하는 디자인을 해주면 된다.
gcc 특정파일 옵션 설정. (0) | 2014.08.07 |
---|---|
이미지 편집 프로그램 김프 (0) | 2014.08.02 |
java version 변경 (0) | 2014.07.15 |
Sun/Oracle JDK 다운로드 및 설치 (0) | 2014.07.09 |
linux 파일 redirection (0) | 2014.05.19 |
집 컴퓨터에 우분투를 설치하고 컴퓨터를 사용하는데, 이미지를 편집할 일이 생겼다. 그래서 설치한 김프.
역시 리눅스엔 무료이면서 좋은 프로그램이 많다.
먼저 우분투 소프트웨서 센터에서 김프를 검색하고,
설치를 하도록 하자.
김프에 대한 설명도 해준다.
김프의 아이콘이다. 이것을 클릭하면 김프가 설치된다.
김프 실행중.
실행화면이다.
파일->열기로 사진을 열 수도 있지만, 열고 싶은 사진을 가운데 창에 드래그 해도 열수있다.
gcc 특정파일 옵션 설정. (0) | 2014.08.07 |
---|---|
리눅스 무료 HTML5 편집기 Aptana (0) | 2014.08.02 |
java version 변경 (0) | 2014.07.15 |
Sun/Oracle JDK 다운로드 및 설치 (0) | 2014.07.09 |
linux 파일 redirection (0) | 2014.05.19 |
이클립스를 쓸 일이 있어서 이클립스를 다운로드 받았는데 어느새 luna 버전이 되었다.
이클립스를 받고 압축을 풀고 실행을 했더니 다음과 같은 에러를 뱉으며 실행이 안되었다.
내 JVM 버전은 1.6인에 이클립스를 쓰려면 1.7이나 그 이상의 JVM을 받으라는 이야기다.
그래서 java 버젼을 확인해 보았다.
$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
정말 버전이 1.6이네...
안드로이드 작업을 하느라 1.6을 받아서 썼으니 당연하지.
$ sudo apt-get install oracle-java7-installer
그렇다면 일단 1.7 버젼을 설치하자.
설치에 문제가 있다면 아래 링크를 이용 해 보자.
새로 설치가 되었다면 자동으로 버전이 1.7로 바뀌었을 것이다.
나같은 경우엔 이미 설치가 되어 있었다.
이때는 alaternatives를 이용해 버전을 바꿔주자.
$ sudo update-java-alternatives -l
설치된 자바의 리스트를 보여준다.
java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-6-oracle 1063 /usr/lib/jvm/java-6-oracle
java-7-oracle 1062 /usr/lib/jvm/java-7-oracle
java-gcj-4.6 /usr/lib/jvm/java-gcj-4.6
참 많이도 설치 되어 있다. 이중에 내가 필요한 것은 oracle의 1.7이므로
$ sudo update-java-alternatives -s java-7-oracle
알맞게 바꿔 준다.
$ java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)
버전이 바뀐 것을 알 수 있다.
다만 android를 작업할 때 다시 바꾸어 주어야 하는 게 걸린다.
또 다른 사람이 사용하고 있다면 그것 또한 문제 인데, 나중 일은 나중에 해결하도록 하자.
gcc 특정파일 옵션 설정. (0) | 2014.08.07 |
---|---|
리눅스 무료 HTML5 편집기 Aptana (0) | 2014.08.02 |
이미지 편집 프로그램 김프 (0) | 2014.08.02 |
Sun/Oracle JDK 다운로드 및 설치 (0) | 2014.07.09 |
linux 파일 redirection (0) | 2014.05.19 |
우선 우분투에 삼바를 설치하도록 한다.
1. 삼바를 위한 네트워크 설정.
우분투에 호스트와 통신하기 위한 네트워크를 추가한다.
설정 -> 네트워크 -> 어탭터2를 선택하고 다음에 연결됨에 호스트 전용 어댑터를 선택하고 확인을 누른다.
2. 우분투 ip 확인
$ ifconfig
eth1 Link encap:Ethernet HWaddr 08:00:27:df:39:4c
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fedf:394c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:65 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10396 (10.3 KB) TX bytes:13608 (13.6 KB)
어댑터 2를 설정하고 생긴 두 번째 eth1가 삼바를 위한 ip이다.
3. 윈도우에서 삼바 접속
우선 주소 창에 우분투 IP와 사용자 명을 \을 이용해 적는다.
사용자 이름과 패스워드를 묻는 창이 나오는데 잘 입력하면 다음과 같이 화면을 볼 수 있다.
우선 주소창의 IP를 눌러보자.
내 폴더가 나오는데 우 클릭을 해서 네트워크 드라이브 연결을 선택한다.
적당한 드라이브 문자를 선택하고 마침을 누른다.
이제 우분투의 폴더를 내 파일 시스템처럼 사용할 수 있다.
virtualbox 외부에서 우분투로 ssh접속 네트워크 구성 (0) | 2014.07.09 |
---|---|
virtualbox, 버추얼박스, 우분투에 하드 추가 (0) | 2014.07.08 |
virtualbox 전체 화면. 게스트 확장 설치. (0) | 2014.07.07 |
virtualbox에 ubuntu, 우분투 설치하기 (0) | 2014.07.07 |
Virtual Machine 설치하기 (0) | 2014.07.07 |
1. 삼바 패키지 설치
아래 명령어로 삼바를 설치하도록 하자.
$ sudo apt-get install samba samba-common
2. user 추가
$ sudo smbpass -a "유저이름"
유저의 패스워드를 설정하도록 하자
New SMB password:
Retype new SMB password:
Added user "유저이름".
3. 삼바 설정 파일 수정
$ sudo vim /etc/samba/smb.conf
위 파일에서 [home]과 관련된 주석을 해제한다.
[homes]
comment = Home Directories
browseable = no
4. 삼바 재시작
$ sudo /etc/init.d/samba restart
이제 윈도우에서 접속해서 사용하면 된다.
\\"ip 주소"\"유저이름"
우분투 ssh 서버 설치 (0) | 2014.07.10 |
---|---|
우분투 저장소 변경 (0) | 2014.07.08 |
1. ssh 서버 설치
우분투에 ssh서버를 설치 해야 한다.
$ sudo apt-get install openssh-server
2. 서버 ip 확인
$ ifconfig
eth0 Link encap:Ethernet HWaddr xxxxxxxxx
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed7:eea2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3455 (3.4 KB) TX bytes:9991 (9.9 KB)
우분투 14.04 삼바 설치 (0) | 2014.07.10 |
---|---|
우분투 저장소 변경 (0) | 2014.07.08 |