본문 바로가기

front end allocator / back end allocator 최근 힙을 망가뜨리는 버그를 처리해야 했다. 그래서 힙에 대해 이런 저런 책을 찾아 보면서 공부를 좀 했는데, 이해가 안 되는 부분이 있었다. 실전 윈도우 디버깅 (advanced windows debugging) 을 보면, 힙의 구조에 대해 설명하면서 매우 비슷한 리스트인 front end allocator 와 back end allocator 에 대해 설명한다. 책에서의 설명에서는 둘 다 특정 크기의 배열을 가지고 있고, 각 배열은 대략 특정 크기의 사용이 해제된 메모리 블록 리스트의 헤더를 가지고 있다. 이런 식으로 메모리 블록을 관리하다가, 다시 할당 요구가 오면 다시 내어주고 하는 데 이 두 구조가 쓰이는 것 같다. 그런데, 이 둘은 매우 비슷하면서도 아주 살짝씩 다르다.두 가지의 설명이 매우 ..
유사진법표기 엑셀컬럼 알파벳식 숫자표기법 http://synapsoft.co.kr/jsp/recruit/13_apply.html 10진법 표기법은 다음과 같다. N = a_n x 10^n + ... + a_1 x 10^1 + a_0 x 10^0 , a_i ∈ { 0 , ..., 9 }이 표기법으로는 0 이상의 모든 수를 표현할 수 있으며, 표기법은 유일하다. 이 표기법을 살짝 바꾼 표기법을 만들어 보면, N = a_n x 10^n + ... + a_1 x 10^1 + a_0 x 10^0 , a_i ∈ { 一 , ..., 九, 十 }이 표기법으로는 1 이상의 모든 수를 표현할 수 있으며 ( 0은 표기하지 못한다. ), 표기법은 유일하다. 심볼을 10개가 아닌 알파벳 대문자를 이용하면 26진법과 유사하게 26의 거듭제곱의 합으로 표현되는 표기법이 ..
stack overflow 메모리 탐구. stack overflow 가 날 때 실제 메모리 주소를 찍어 보고, 그 값을 vmmap 툴과 비교해 봤다. 재귀함수(recursive fuction)를 배울 때 가장 많이 듣는 유의점이, 재귀함수는 stack overflow 를 유발할 수 있기 때문에 주의하라라는 말이다. 재귀함수를 이용하여 문제를 발생시켰다.재귀함수 내부에 지역변수를 하나 생성하였고, 그 지역변수의 주소를 찍었다. sysinternals 의 vmmap 툴은 프로세스를 선택하면 해당 프로세스의 메모리 공간의 각 부분이 어떤 영역으로 잡히는 지를 보여준다. 우리의 관심사는 stack 이고, stack은 0x00030000 ~ 0x00130000 영역에 잡혀있다. 첫번째 그림에서 찍힌 첫번째 r의 주소는 0x12ff48 스택 중에서도 윗부..
[StackOverflow|WinDbg] windbg의 STACKIMMUNE 은 무슨 뜻인가? 원문 : http://stackoverflow.com/questions/9065975/what-does-windbgs-primary-problem-class-stackimmune-mean !analyze 의 원리를 잠깐 설명하면, !analyze 는 access violation (또는 SEH exception, C++ exception, integer overflow, division by zero 등등)의 원인을 찾기 위해서 예외를 던진 쓰레드의 콜스택 위에 무엇이 있는지 확인한다. 그러나, 모든 스택 프레임이 의미있는 것은 아니다. 예를 들어, C++ 예외일 경우 가장 위에 있는 kernel32!RaiseException 과 your_module!__exception_handler3 가 스택 가장 ..
[SQL] 저장프로시져 디버깅 ( how to debug stored procedure in ms-sql ) MS-SQL 에서 저장 프로시져를 디버깅하는 방법1. 프로시져 안에 print 문을 사용하면서 로깅을 찍을 수 있다.2. MS-SQL 2008 에서는 F5를 눌러 실행하지 말고, alt+F5를 실행하면, 비주얼 스튜디오 디버거 처럼 F10, F11 키로 한 행씩 진행하며 디버깅 할 수 있다고 한다.
[번역] First Chance Exception 은 무엇일까? First Chance Exception 은 무엇일까?원저자 DavidKlineMS 2005-7-12번역 daewonyoon 2013-07-3애플리케이션을 디버깅하면서 "First chance" exception 메시지를 본 적이 있나요?혹시 이런 것이 궁금하지 않았나요?first chance exception 은 무엇일까?first chance exception 이 내 코드에 문제가 있다는 뜻일까? first chance exception 은 무엇일까?애플리케이션을 디버깅할 때, 디버거는 예외(exception)가 발생할 때마다 알림을 받습니다. 이 때 애플리케이션은 잠시 동작을 멈추고, 디버거는 그 예외를 어떻게 처리할 지를 결정합니다. 이 메커니즘을 처음 지나는 것을 "first chance" ex..
[번역] UAC가 설정되어 있을 때, 프로세스를 관리자 권한으로 실행시키는 방법 http://msdnrss.thecoderblogs.com/2013/03/how-to-launch-a-process-as-a-full-administrator-when-uac-is-enabled/ UAC가 설정되어 있을 때, 프로세스를 관리자 권한으로 실행시키는 방법How to launch a process as a Full Administrator when UAC is enabled? 2013년 5월 10일 번역 daewonyoonPosted by Code Monkey on March 23, 2013 비스타에서 사용자 접근 제한(UAC)이 도입되면서, UAC가 활성화된 상태에서는 자동적으로 완전한 관리자로 프로세스를 실행할 수 없게 되었다. 일반적으로는, (현재 사용자가 관리자가 아닐 때) 다음과 같은..
[StackOverflow] SQL Server profiler 같은 것이 PostgreSQL 에도 있나? SQL Server profiler 같은 것이 PostgreSQL 에도 있나? http://stackoverflow.com/q/2430380/100093 PostgreSQL 서버로 보내지는 쿼리를 보고 싶다. MS SQL 서버에서는 SQL Server profiiler 를 사용했었는데, PostgreSQL에서는 어떻게 하는지 아직 모르고 있다. 살 수 있는 툴은 몇 개 있는 것 같은데, 오픈소스로 있으면 좋겠다. BozoJoe ( 2010-03-12 ) http://stackoverflow.com/a/2430393/100093 log_statement 설정을 사용해서 서버로의 모든 쿼리 리스트를 얻을 수 있다. http://www.postgresql.org/docs/current/static/runtim..