samedi 22 juin 2019

How to identify the signal 11 error reason?

I´m running a C++ program in a Linux system (Kernel 4.15 - Ubuntu 16.04). When I want to compile my code, I get the signal 11 error message which is related to line 10 ("for" loop) of the following code:

 void ProfilerBlock::ReadStack(const trace::EventValue& event,
                          std::vector<std::string>* stack)
 {
  process_t pid = ProcessForEvent(event);

  std::vector<std::string> symbolizedStack;
  const auto* stackField = 
  value::ArrayValue::Cast(event.getEventField("stack"));

  for (const auto& addressValue : *stackField)
    {
    uint64_t address = addressValue.AsULong();

    symbols::Symbol symbol;
    uint64_t offset = 0;
    if (!_symbols.LookupSymbol(address, _images[pid], &symbol, 
    &offset))
        symbol.set_name("Unknown Symbol");
    if (boost::starts_with(symbol.name(), "lttng_profile"))
        continue;

    stack->push_back(symbol.name());

    if (_dumpStacks)
        std::cout << symbol.name() << " - " << address << std::endl;
     }

     if (_dumpStacks)
        std::cout << std::endl;
     } 

Does anybody have any idea about it?

Aucun commentaire:

Enregistrer un commentaire