以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 程序无响应了,日志没有任何输出 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=84551) |
-- 作者:qq代人发帖 -- 发布时间:2015/8/28 15:50:27 -- 程序无响应了,日志没有任何输出 运行不定长时间,有时候是几天,有时候几小时,程序就无响应了,我自己做的日志也没有任何输出。在金字塔的策略中,有3个类似MID的入口,我都加了__try __except,但是没有任何的输出的。有一次我修改了参数,结果读取参数的时候越界了,就发现日志中有记录的。
我程序的代码片段: __declspec(dllexport) int WINAPI MID(CALCINFO *calc) { int ret; __try { ret = __mid(calc); } __except(except_handler(GetExceptionInformation())) { } return ret; } int except_handler(LPEXCEPTION_POINTERS excep) { int i; PCONTEXT context; unsigned long *esp; context = excep->ContextRecord; syslog("ebp %x, eip %x, esp %x, esi %x, edi %x, eax %x, ebx %x, ecx %x\\n", context->Ebp, context->Eip, context->Esp, context->Esi, context->Edi, context->Eax, context->Ebx, context->Ecx); fflush(fp_syslog); return EXCEPTION_EXECUTE_HANDLER; } |
-- 作者:王锋 -- 发布时间:2015/8/28 16:09:19 -- 这样的东西我们没法去查的,建议你程序使用排除法,削减你的部分代码调用,直到找到具体的出问题的代码段,这样我们才有可能帮你一起来分析问题 |
-- 作者:solegoose -- 发布时间:2015/8/28 16:33:58 -- 有些问题不一定在我的代码里面,你们也总需要提供某种机制,让DLL插件开发者进行调试吧。你们在程序化交易相关的代码上,有没有用上__try __except?或者说是c++中的try catch等,如果用了,在死机前,你们那边应该能得到某种信息吧。就让我们增加,减少一些代码来调试,这个手段未免太过原始了吧。 |