전체 글
-
gdb 실행중 pipe로 입력 받기카테고리 없음 2025. 2. 24. 11:25
gdb 실행중에 python이나 binary file을 통해 디버깅중인 프로그램에 표준 입력(stdin)을 주려면 어떻게 해야될까?나는 linux의 mkfifo를 이용해 보았다. 일단 mkfifo /path/to/myfifo 이렇게 해서 fifo 파일을 만든다. 그리고 다음 코드를 작성한다.#pipe.pyimport sysimport osfd = os.open("/path/to/myfifo", os.O_RDONLY | os.O_NONBLOCK)with os.fdopen(fd, "rb") as f: while True: data = f.read() if data == None: continue sys.stdout.buffer.write(data) sys.stdout.flus..
-
movaps %xmm0, 0x50(%rsp)카테고리 없음 2025. 2. 24. 11:16
포너블 해킹을 하다보면 알 수 없는 이유로 stack segment fault가 뜰 때가 있다.그럴 때 디버깅을 해봤는데, "movaps %xmm0, 0x50(%rsp)" 이런 명령어에서 segment fault가 뜨는 걸 확인했다면,0x50(%rsp) 주소가 0x10으로 정렬되어 있는 지 확인 해봐야한다.movaps 명령어는 Move Aligned Packed Single-Precision 명령어이다. 정렬이 필수다.그런데 xmm0 레지스터는 128bit 즉 0x10byte 레지스터이다.즉 0x10으로 정렬된 0x12345610은 괜찮지만, 0x12345618은 안된다는 뜻이다.
-
deepseek r1 distill function call review카테고리 없음 2025. 2. 14. 19:14
https://github.com/akswnd98/owlagent GitHub - akswnd98/owlagentContribute to akswnd98/owlagent development by creating an account on GitHub.github.comdeepseek r1 distill은 기본적으로 function call을 native하게 지원하지 않는다.그런데 써 보면 알겠지만 지능이 상당히 좋다.지금 까지 나왔던 다른 소형 (rtx3090이나 맥북에서 돌릴만한) 모델들과 비교하면 한 두 단계 위이다.이대로 버리기엔 아까워서 prompt를 깍아서 function call 기능을 직접 구현해 봤다.deepseek 공식 홈페이지를 보면 알겠지만,Chat template을 사용해야 하고, ..
-
llama-cpp-python 설치카테고리 없음 2025. 2. 10. 12:43
llama-cpp-python은 pip로 install 과정에는 cmake와 visual studio build tools나 mingw로 바이너리를 빌드하는 과정이 있다.따라서 빌드를 위한 환경설정에 유의해서 설치해야 한다. 설치 과정1. visual studio 설치를 켜고, c++를 사용한 데스크톱 개발에 들어가서 각종 빌드 도구들을 설치해 준다. 2. cuda를 설치한다. cuda를 설치할 때 지원하는 cuda 버전을 확인해야 한다. 2. set "CMAKE_ARGS=-DGGML_CUDA=on" 를 터미널에 입력해서, cuda를 사용하겠다고 명시한다. 3. pip install --upgrade --force-reinstall --no-cache-dir llama-cpp-python 를 실행한다.다..
-
모순 의심을 습관화 하자카테고리 없음 2025. 1. 24. 20:36
클린코드를 작성하기 위해 여러 가지 원칙을 지키기 위해 열심히 사고한다면 꼭 빼먹지 말아야 하는 과정이 있는 거 같다.내가 설정한 목표가 모순이 아닌지 check! 하는 것이다. 캡슐화 원칙과 최대한 일반적인 인터페이스를 제공하겠다는 것은 서로 상충될 때가 많다.이건 사실 오래 고민할 필요가 없다.왜냐하면 캡슐화 원칙은 숨기려는 것이고, 일반적인 인터페이스를 제공하는 것은 많이 공개하려는 것일 수 있기 때문이다.하지만 이 단순한 모순을 눈치채지 못한다면 시간낭비를 많이 할 수도 있다는 거다.그래서 뭔가 고민이 길어진다면, 한 번쯤은 "내가 설정한 목표가 모순이지는 않을까?"라고 생각해 보는 것이 좋다.