#WITHYOU
Lum7671's Weblog
#WITHYOU
Xcode, LLDB Memo

lldb 메모

break point, 몇 가지 방법

(lldb) breakpoint set --name func001 --name func002
(lldb) break set --method method001
(lldb) br set --selector obj001_selector001:
(lldb) b set --name "-[class001 method001:]"
(lldb) breakpoint set --file test.swift --line 26
(lldb) breakpoint set --selector viewWillAppear
  • breakpoint 는 break, br, b 로 줄여서 쓸 수 있다.
  • -r’ : 정규식표현식

break point, 추가 설명

(lldb) breakpoint list
(lldb) tread backtrace all
(lldb) breakpoint disable 2
(lldb) b MyView.m:4
(lldb) b "-[MyViewA drawRect:]"
(lldb) b drawRect:
(lldb) break dis 1.4 # 1.4 is list number
1 breakpoints disabled.

참고 :

메모

  • ABI : Application Binary Interface

  • lldb 실행

% xcrun lldb
  • Command Syntax
(lldb) <noun> <verb> [options] [argument [argument...]]
  • Low level debug
(lldb) register read
(lldb) register read $arg1 $arg2
(lldb) memory read $arg1
error: memory read failed for 0x400
(lldb) reg read rax
  • for (int i = 0; i < count; i++) processElement(dataset[i]);
(lldb) parray `count` dataset
(int *) $8 = 0x0000000100200260 {
(int) [0] = 0
(int) [1] = 16842769
(int) [2] = 33685538
(int) [3] = 50528307
(int) [4] = 67371076
}
(lldb)
  • 포인터에 값 대입
  • Action
(lldb) br co a                   # breakpoint command add
(lldb) > p rect
(lldb) > bt
(lldb) > c
(lldb) > DONE
  • 값 처리
(lldb) p id $myModel = self       # p => primitive type
(lldb) b "-[MyModel dealloc]"
(lldb) br m -c "self == $myModel"
  • Watch
(lldb) w s v self->_needsSynchronization # watchpoint set variable
  • Thread 처리
(lldb) th u 11
  • Ignore 처리
(lldb) e -i false -- [self myMethod]
  • 포인터에 값 대입
(lldb) expr unsefeBitCast(0x10035708c, UIImageView.self)
  • 임시변수 사용.
$R4 <= 임시변수.
(lldb) expr let $bug1 = unsefeBitCast(0x10035708c, UIImageView.self)
(lldb) expr println($bug1)
(lldb) expr println(bugs)

Python 와 Emacs

Emacs 에서 Python 사용하기.

ipython shell 깨지는 문제 (setq python-shell-interpreter "ipython" python-shell-interpreter-args "--simple-prompt -i") 참고 : Weird shell output when using IPython 5...

Read More
MacOS에서 Python3를 python으로 사용하기.

virtualenv를 이용해서 MacOS에서 Python3를 python으로 실행 가능하도록 하는 방법.

MacOS에서 Python3를 python 으로 사용하는 방법. 1. 필요 소프트웨어 설치 % pip install virtualenv % pip install virtualenvwrapper 2. 환경 설정 $ mkdir ~/.virtualenvs # .zshrc export WORKON_HOME=~/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh 3. python3 를 python 기본으로… % mkvirtualenv --python=/usr/local/bin/python3 myenv 4. 확인 % python --version Python 3.6.2 % deactivate # 기본 python 으로 되돌림 % python --version Python 2.7.10 % workon myenv # python3 을 python 으로... %...

Read More
자동차 메모

기억하고 싶은 자동차 메모

베터리 상식 volt 차량과 배터리의 규격에 따라 조금 다르기는 하지만, 정격 충전 전압은 대략 13.6 - 14.2V DC 입니다. 13.6V가 안 나오면, 알터네이터(발전기) 혹은 전압 레규레이터(정압기)의 문제가 있음을 의미 합니다. 차량을 정상적으로 어느 정도 장거리 운행한 후 엔진을 정지시키고, 차량에서 사용되는 모든 엑세서리나 부속 장비의 전원을 완전 차단 후, 배터리 단자의 전압을 측정합니다. 정격 무부하 전압은 대략 12.6V DC 정도가 될 것입니다. 참고 : 차량용 밧데리 체크방법...

Read More
zsh tips

zsh 에서 기억하고 싶은 것들…

expr % expr 10 \* 3 30 % expr length 1234567 7 # expr substr [string] [pos] [length] % expr substr 1234567 3 2 34 # expr index [string] [chars] % expr index 1234567 34 3 noglob 파일 이름 치환 기능을 비활성화한다. % echo * file1 file2 file3 file4 % ls * file1 file2 file3 file4 % * zsh:...

Read More
경력에 대한 생각

프로그래머의 경력에 대한 생각

장인이 있는 창착이나 공예와 같은 분야에서 경력이 쌓일수록 기술이 다듬어지고 빨라지고 기술 노하우도 늘어서 초급 기술자보다 고급 기술자와 격차가 눈에 띄게 많이 난다. 하지만, 컴퓨터 프로그래머로 고급 기술자가 되는 길은 명확하지 못한 것 같다. “넓고 얕게” 또는 “좁고 깊게” 보통 내 경력에 대해 얘기할 때, “넓고 얕게 알고 있다”라고 하는데 경력을 쌓는 방법으로는 이것도 한 방법이고, 그 반대인 좁고 깊게 아는 방법도 경력을 쌓는 방법이라고 생각이 된다. 분야 92학번 나이에 한국에서 프로그래머로 살아가는 것은 미래에 대한 알 수 없는 불안으로 계속해서 걱정을 하며 살았던 것 같다. 선배가 있으면 선배를...

Read More
Aquamacs

Aquamacs 관련 메모

customizations.el 위치 : $HOME/Library/Preferences/Aquamacs\ Emacs/customizations.el PATH 설정 (setenv "PATH" (concat "/Users/1001028/bin" ":" "/usr/local/bin" ":" (getenv "PATH") ) ) PATH 확인 M-x getenv => PATH LANG=ko_KR.UTF-8 (setenv "LANG" (concat "ko_KR.UTF-8"...

Read More
iOS, JavaScript 와 통신

JavaScriptCore, UIWebView 를 사용해서 iOS 와 JavaScript 의 서로 통신 방법

1. JavaScript의 console.log 를 NSLog 로 찍어 보기. ViewController.m : 44라인 JSContext *ctx = [_webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; ctx[@"console"][@"log"] = ^(JSValue * msg) { NSLog(@"%@ log message: %@", [JSContext currentContext], msg); }; test.html : 19, 31라인 console.log('=== Java Script Start...

Read More
iOS Memo

기억하고 싶은 iOS 메모

참고 On-Demand Resources Guide UITableView Performance URL : A Closer Look at Table View Cells Cells and Table View Performance The proper use of table view cells, whether off-the-shelf or custom cell objects, is a major factor in the performance of table views. Ensure that your application does the following three things: Reuse cells. Object allocation has a performance cost, especially if the allocation has to happen repeatedly over a short period—say, when the user scrolls a table view. If you reuse cells...

Read More
iOS, UILabel 에서 글자 간격 조정하기.

NSAttributedString 의 NSKernAttributeName 설정

1. 소스 @interface ViewController () @property (assign, nonatomic) BOOL toggle; @end @implementation ViewController #define LABEL_TEXT @"MAGENTA" #define SMALL_FLOAT 0.0f #define LARGE_FLOAT 20.0f - (IBAction)clickedTestButton:(id)sender { _toggle = (_toggle)?NO:YES; Read More