没有来自核心转储的stacktrace,也无法从核心中提取任何构建ID

时间:2018-11-19 21:05:22

标签: c++ linux gdb coredump

我在生产中有一个应用程序,该应用程序以非常不可预测的间隔(有时少于一周一次,很少是每小时一次)产生段错误。 在首先必须将其设置为完全生成核心转储之后,现在有了一个。但是我根本没有任何符号,所以它没有用。

我试图将build-ids与生成它的可执行文件进行比较,尽管根据时间我可以肯定我有正确的选择,但看起来还是无法提取。

const chai = require('chai');
const sinon = require('sinon');
const proxyquire = require('proxyquire');

const expect = chai.expect;

describe('Token test', function() {
  let outhController;
  let Token;
  let requestStub;

  beforeEach(() => {
    const err = null;
    const res = null;
    const body = { name: 'All' };

    requestStub = sinon.stub().yields(err, res, body); // create sinon for request function and return response body that we want
    Token = proxyquire('Token', { request: requestStub }) // replace original request module with our sinon stub

    outhController = new Token();
  });

  it('Outh test', (done) => {
    const payload = {};
    outhController.getToken(payload)
      .then(response => {
        sinon.assert.calledWith(requestStub, 'hhtps://xyz.com');

        expect(typeof response).to.equal('object');
        expect(response.name).to.equal('All');

        done();
      });
  });
});

似乎不是我在此示例中看到的[exe]的ID。

除了加载gdb,执行符号文件/ path / to / my / binary以及必须接受此核心转储对我无用之外,我还能做些什么吗?

编辑:

gdb -ex其中产生看起来像堆栈跟踪的内容。与运行符号文件有何不同?

我有一些库作为源文件包括在内,其余库是动态链接的。

根据阅读的精灵,exe中有一个版本ID。

0 个答案:

没有答案