목록programming (71)
관심있는 것들 정리
gdb의 breakpoint 설정 방법 중 자주쓰는 사용법: break(또는 b) break(또는 b) 함수이름 break(또는 b) 라인번호 break(또는 b) 파일이름:라인번호 break(또는 b) 파일이름:함수이름 break(또는 b) +오프셋 break(또는 b) -오프셋 break(또는 b) *주소 간단한 것들 말고 헷갈릴 만한 것에 대해 설명하면 다음과 같다. b +오프셋 : 현재 멈춰있는 위치에서 오프셋 라인 만큼 뒷 라인에 breakpoint가 설정됨 b -오프셋 : 현재 멈춰있는 위치에서 오프셋 라인 만큼 앞 라인에 breakpoint가 설정됨 b *주소: 실행되는 이미지의 주소 영역을 breakpoint로 설정 shared library를 명시하기를 원할 경우 b -shlib shar..
gdb에서 backtrace를 이용하면 stack frame의 정보를 출력하는 것이 가능하다. 사용법: backtrace (또는 bt) : 모든 backtrace를 표시 backtrace N (또는 bt N) : 처음(innermost) N개의 frame만 표시 backtrace -N (또는 bt -N) : 마지막 (outermost) N개의 frame만 표시 backtrace와 함께 full qualifier가 함께 사용되면 local 변수들도 함께 출력됨 예: backtrace full (또는 bt full)
gdb에서 레지스터 출력하는 명령 info regsters 또는 info reg Macbook에서 실행한 예는 다음과 같음 rax 0x100000e584294970968 rbx 0x00 rcx 0x7fff5fbffb38140734799805240 rdx 0x7fff5fbffa98140734799805080 rsi 0x7fff5fbffa88140734799805064 rdi 0x11 rbp 0x7fff5fbffa600x7fff5fbffa60 rsp 0x7fff5fbffa600x7fff5fbffa60 r8 0x9dbad16165391638 r9 0x00 r10 0x12004608 r11 0x206518 r12 0x00 r13 0x00 r14 0x00 r15 0x00 rip 0x100000e980x100000..
gdb의 print 명령의 설명은 다음과 같다. (gdb) help print Print value of expression EXP. Variables accessible are those of the lexical environment of the selected stack frame, plus all those whose scope is global or an entire file. $NUM gets previous value number NUM. $ and $$ are the last two values. $$NUM refers to NUM'th value back from the last one. Names starting with $ refer to registers (with the value..
Wireshark로 packet capture를 실행 한 후 File->Export->Object->HTTP 메뉴를 선택하면 다음과 같은 메뉴를 볼 수 있다. Content Type이 그림 형식인 내용을 선택한 후 Save As 버튼을 눌러 그림을 저장하면 pcap 파일에서 그림 추출이 가능하다.
wxPython의 hello world 프로그램이라 할수 있는 가장 기초가되는 코드 #!/usr/bin/python import wx app = wx.App() frame = wx.Frame(None, -1, 'hello world') frame.Show() app.MainLoop()
frame size 조절 예제 #!/usr/bin/python import wx class SizeTest(wx.Frame): def __init__(self, parent, title): super(SizeTest, self).__init__(parent, title=title) self.SetSize((100,200)) self.Show() if __name__ == '__main__': app = wx.App() SizeTest(None, title='SizeTest') app.MainLoop()