DEBUG
Posts
15 posts[Python] 디버그 시에만 동작하도록 하는 코드 짜기
코딩을 하면서 제일 중요한 것은 테스트 입니다. 해당 기능을 UnitTest 모듈을 이용해서 잘 하고 있는데,어느날 어느 경우에 PyCharm의 디버그 모드에서는 잘 동작하는데,setup.py 로 test 시에는 동작을 제대로 안하는 경우가 생겼습니다.원인은 아직 파악하지 못했지만,코드에서 디버그 모드일 때와 그냥 돌렸을 때의 경우에 따라코드를 구분하고 싶어졌습니다. 결론은 다음과 같이 하면 됩니다. ... sg = sys.gettrace() # 디버그는 괜찮지만 실제 build.bat 에서는 오류 발생 때문 if sg is None: # Not in debug mode print('Skip testing at test/build time'
[Linux][Kernel] fd(file descriptor: 파일 디스크립터) 디버깅 CrashTool
"echo c > /proc/sysrq-trigger" 명령어로 강제 커널 패닉을 유발시킨 다음 코어 덤프를 받아 보았어요.crash> bt -I C01003AC -S C59C3E20 0xD110E040PID: 4944 TASK: d110e040 CPU: 0 COMMAND: "sh" #0 [ ] (do_DataAbort) from [ ] pc : [ ] lr : [ ] psr: 60010013 sp : c59c3f10 ip : c1920700 fp : bee5765c r10: 00000000 r9 : acf2a284 r8 : 00000000
[Linux][Kernel] ftrace - early logging at boot time
리눅스 커널 디버깅 기능의 핵심 ftrace에 대해서 여러 번 소개했는데요.한 가지 재미있는 패치를 소개하려고 해요. ftrace 로깅을 하기 위해서는 아래와 같은 방식으로 시스 노드에 있는 파라미터를 설정해야 해요."echo 0 > /d/tracing/events/enable""echo 1 > /d/tracing/events/sched/sched_switch/enable""echo 1 > /d/tracing/events/power/wakeup_source_activate/enable""echo 1 > /d/tracing/events/power/wakeup_source_deactivate/enable" "echo 1 > /d/tracing/events/irq/irq_handle
[Linux][Kernel] 슬랩 Slab Memory 디버깅(Debugging) - 1
슬랩 디버그 컨피그를 키면 어떤 일을 더 할까요? 정리해볼께요 콜트래이스 저장슬랩 메모리를 할당 및 해제할 때 콜트래이스를 저장해요. 이 콜트래이스는 struct track 변수에서 쓰이거든요. 우리가 알고 있는 슬랩의 종류는 30여 가지나 되죠. 이런 슬랩 메모리를 할당하고 해제할 때 콜스택을 모두 저장한다는 것은 시스템에 과부하를 주게 되요. 성능이 좋지 않은 CPU가 탑재된 타겟 디바이스에서 심하면 부팅도 제대로 못할 수도 있어요. 아래 Slab corruption으로 커널 패닉이 발생한 로그를 잠깐 봅시다. 아래 커널 로그는 lkdtm feature를 써서 WRITE_AFTER_FREE 버그를 강제로 유발시킨 건데요. 문제 발생 코드는 아래와 같아요.(CONFIG_LKDTM을 키고 커널 이미지를


