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