2017-12-18 1 views
0

Linux에서 성능 프로파일 러를 함께 사용하고 있으며 수집 된 스택 추적 정보를 함수 이름에 매핑하는 데 문제가 있습니다. 나는 현재로하면 addr2line 호출 오전프로필 주소에서 함수 이름을 가져 오는 방법은 무엇입니까?

FILE* pipe = popen("addr2line -f -i -s -C -e <libname> <address>", "r"); 
    if (!pipe) return; 

    const size_t BUFFER_SIZE = 8192; 
    char buffer[BUFFER_SIZE]; 
    string result; 
    while (!feof(pipe)) 
    { 
    if (fgets(buffer, BUFFER_SIZE, pipe) != NULL) 
    result += buffer; 
    } 

    pclose(pipe); 

그러나 내 게시물 처리 코드에서 다음과 내 프로필 샘플을 많이 가지고 이것은 정말 느립니다. addr2line과 같은 다른 유틸리티가 더 빠르거나 addr2line을 내가하는 것보다 효율적인 방법으로 호출 할 수 있습니까?

답변

0

addr2line 유틸리티의 소스 코드를 수정하여이 문제를 극복하고 라이브러리로 변환했습니다. 그래서 지금이 라이브러리를 프로파일 분석기에로드하고 'addr2line'을 함수처럼 호출합니다!

관련 문제