Exemple #1
0
	Backtrace::Backtrace(Optional<unsigned int> strip) {
		void* allAddr[BACKTRACE_MAX_SIZE];
		unsigned int nbEntries = numeric_cast<unsigned int>(backtrace(allAddr, BACKTRACE_MAX_SIZE));
	
	    // Ajouter + 1 pour exclure le constructeur du backtrace
        unsigned int realStrip = strip.apply([] (unsigned int n) { return n + 1; }).orDefault(0);
	
		for (unsigned int i = realStrip; i < nbEntries; i++) {
			void* addr = allAddr[i];
			Optional<StackElement> element = createStackElement(addr);
			if (element) {
			    _elements.push_back(move(*element));
		    }
		}
	}