Исключить вызовы функций стандартной библиотеки C ++ из вывода gprof - PullRequest
0 голосов
/ 04 января 2019

Я использую стандартную библиотеку C ++ в некотором коде C ++ и этот make-файл:

CC=g++
CXXFLAGS=-Wall -Werror -ggdb3 -std=c++11 -pedantic $(OTHERFLAGS)
cpp_sort: cpp_sort.o
    g++ -o $@ $(CXXFLAGS) $^
clean:
rm -rf *.o cpp_sort *~

Исходный код:

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

void get_input(vector<int>& items, int size) {
    for (int i = 0; i < size; ++i) {
        int element;
        cin >> element;
        items.push_back(element);
    }
}

void cpp_sort(vector<int>& items) {
    sort(items.begin(), items.end());
}

void print_array(vector<int>& items) {
    for (auto& item : items) {
        cout << item << ' ';
    }
    cout << endl;
}


int main() {
    int size;
    cin >> size;
    vector<int> items;
    items.reserve(size);
    get_input(items, size);
    cpp_sort(items);
    print_array(items);
}

Я звоню так:

make OTHERFLAGS=-pg

запустить программу (где large.txt - длинный список целых чисел):

./cpp_sort <large.txt

и просмотр информации о профилировании:

grof ./cpp_sort

Это нормально и работает, но вызов моих функций скрыт всеми вызовами функций стандартной библиотеки C ++. Есть ли способ исключить вызовы внутренних функций стандартной библиотеки?

...