一直在寻找,但我找到的唯一的东西是http://evain.net/blog/articles/2009/07/30/rebasing-system-reactive-to-the-net-clr,我开始工作,但感觉就像应该有一个更简单的方法,特别是因为rx在09年中期首次发布.
我正在尝试分析迷你崩溃转储并需要符号文件以获取有关崩溃的更多详细信息.我目前只是看到:"034eff74 0086eee9 00000000 0089d58d 034eff94 app_integrator!ZNK14ACE_Data_Block4baseEv + 0x6"
是否可以从msys/mingw gcc构建的dll中提取调试信息到windbg可读格式?如果没有,是否有任何其他方式来获取更详细的信息,如以某种方式加载MAP文件?
dll及其包含的.o文件都是使用-g标志构建的.
我偶尔会遇到我的应用程序的问题,导致我猜测是未完成的事务未提交或回滚.我的应用程序下次尝试向数据库启动事务时,我首先注意到该问题.
我的问题是如何找出在事务中已执行但尚未提交的查询,受影响的表等等?基本上帮助我找出导致问题的原因.
我启用了二进制日志,但根据文档,事务只在提交时写入二进制日志.
innodb撤销日志应该写成一个包含在与binlogs相同的目录中的idbfile,它是,但我不能说我已找到任何方法解析它为此目的.
SHOW PROCESSLIST显示我的状态为SLEEP的会话
显示创新状态:
...
...
---TRANSACTION 0 10661864, ACTIVE 4401 sec, process no, 4831, OS thread id 3023358896
3 lock struct(s), heap size 320, undo log entries 40
MySQL thread id 2, query id 2419 localhost masteruser
Trx read view will not see trx with id >= 0 10661865, sees < 0 10661865
...
...
Run Code Online (Sandbox Code Playgroud)
PS我在ServerFault上有同样的问题,但我想这个问题介于两者之间,当涉及到分类时,+我发现该网站的活动比StackOverflow低得多,所以获得答案的机会在这里感觉更高,希望这个好.
/的Kristofer
问题:如何获取展位发布者连接和断开的活跃度通知?
背景:我正在使用 OpenDDS 实现,其中有一个数据类型 (dt) 的发布者和订阅者,使用相同的主题,位于不同的计算机上。
订户端的阅读器已重写on_data_available(...)
和的实现on_liveliness_changed(...)
。我的订阅者首先启动,导致回调表明on_liveliness_changed(...)
没有可用的作家。当发布者启动时,我会收到一个新的回调,告诉我有一个可用的编写器,并且当发布者发布时,on_data_available(...)
会被调用。到目前为止,一切都按预期进行。
发布者的作者有一个被重写的on_publication_matched(...)
. 启动发布者时,on_publication_matched(...)
会被调用,因为我们已经启动了订阅者。
问题是,当发布者断开连接时,我on_liveliness_changed(...)
在阅读器端没有得到任何回调,当发布者再次启动时,我也没有得到新的回调。
我尝试通过设置 来更改 readerQos readerQos.liveliness.lease_duration
。但结果是on_data_available(...)
永远不会被调用,唯一的回调on_liveliness_changed(...)
是在启动时,告诉我没有发布者。
DDS::DataReaderQos readerQos;
DDS::StatusKind mask = DDS::DATA_AVAILABLE_STATUS | DDS::LIVELINESS_CHANGED_STATUS | DDS::LIVELINESS_LOST_STATUS ;
m_subscriber->get_default_datareader_qos( readerQos );
DDS::Duration_t t = { 3, 0 };
readerQos.liveliness.lease_duration = t;
m_binary_Reader = static_cast<binary::binary_tdatareader( m_subscriber->create_datareader(m_Sender_Topic,readerQos,this, mask, 0, false) );
Run Code Online (Sandbox Code Playgroud)
/克里斯托弗
如何获取包含加载的ada共享库的C++应用程序,以便在崩溃时生成核心转储?
我有一个加载ada共享库的C++应用程序,在ada代码中我遇到堆栈溢出错误导致程序终止以及控制台输出:
raised STORAGE ERROR
Run Code Online (Sandbox Code Playgroud)
即使您在启动应用程序之前发出了"ulimit -c unlimited",也不会生成核心转储文件.
如果我向 应用程序发送kill SIGSEGV,也会发生同样的事情.
将kill SIGSEGV发送到另一个不使用ada dll的应用程序会按照我希望的方式生成核心转储文件.
在这里找到一些信息:http://objectmix.com/ada/301203-gnat-fstack-check-does-work.html
更新!正如Adrien所提到的,没有矛盾,-s设置堆栈限制,而-c设置核心文件限制.
问题仍然存在.我在构建ada库时检查了标志,并且未设置fstack-check标志,因此它应该生成核心转储.
我还没试过,看起来有些奇怪.它提到-fstack-check编译器选项+设置GNAT_STACK_LIMIT变量但同时引用ulimit命令似乎是一个矛盾,设置"ulimit -c"是我知道生成核心转储的唯一方法在崩溃时,如果这与fstack-check选项有关,那么我们有一个捕获22.