我有一个用C++编写的非常大,复杂(百万+ LOC)的Windows应用程序.我们每天收到一些应用程序已锁定的报告,必须强制关闭.
虽然我们有关于崩溃的广泛报告,但我想扩展它以包括这些挂起场景 - 即使有大量的日志记录,我们也无法找到其中一些的根本原因.我们可以清楚地看到活动停止的地方 - 但不是为什么停止,即使在评估所有线程的输出时也是如此.
问题是检测何时发生挂起.到目前为止,我能想到的最好的是一个看门狗线程(因为我们有证据表明后台线程继续运行w/out问题),它定期用自定义消息对主窗口进行ping操作,并确认它是在一个自定义消息中处理的.及时时尚.这只会捕获GUI线程挂起,但这似乎是大多数情况发生的地方.如果在可配置的时间范围内未收到回复,我们将捕获内存和堆栈转储,并为用户提供继续等待或重新启动应用程序的选项.
有没有人知道比这样定期轮询主窗口更好的方法呢?它似乎非常笨拙,但我还没有看到可以在我们的平台上运行的替代方案--Windows XP和Windows 2003 Server.我看到Vista有更好的工具,但不幸的是,这对我们没有帮助.
我只想说我们对此进行了广泛的诊断,并且只取得了有限的成功.请注意,实时附加windbg不是一种选择,因为我们在事件发生后数小时或数天才收到报告.我们将能够检索内存转储和日志文件,但仅此而已.
任何超出我上面计划的建议都将受到赞赏.
有没有办法在2个对象之间比较类名?
喜欢:
NSString *bla = [[NSString alloc] init];
if([bla class] isEqual: NSString])
NSLog(@"success");
Run Code Online (Sandbox Code Playgroud)
不确定我的语法是否正确.
我想在表上创建一个索引,我试图根据列选择性来决定索引中列的顺序.
因此,最具选择性的列(最能缩小选择范围的列)将是索引中的第一列,其次是第二选择性列等.
如何计算色谱柱的选择性?
我作为C#开发人员度过了我的职业生涯.作为一名学生,我偶尔使用C但没有深入研究它的编译模型.最近我跳上了潮流,开始研究Objective-C.我的第一步只让我意识到我先前存在的知识中的漏洞.
根据我的研究,C/C++/ObjC编译需要预先声明所有遇到的符号.我也理解建筑是一个两步的过程.首先,将每个单独的源文件编译为单个目标文件.这些目标文件可能具有未定义的"符号"(通常对应于头文件中声明的标识符).其次,将目标文件链接在一起以形成最终输出.这是一个非常高级的解释,但它足以满足我的好奇心.但是我也希望对C#构建过程有类似的高级理解.
问: C#构建过程如何解决头文件的需求?我想也许编译步骤可以进行两遍?
(编辑:此处跟进问题)在使用库时C/C++/Objective-C与C#的比较如何?)
我在一家 Web 开发公司工作,我为我们的一些营销人员设计了一个页面,以便将自定义页脚添加到我们应用程序的各个页面中。在将我们的产品部署给全世界之前,我们有各种测试环境。
问题是,当有人尝试向页脚 HTML 添加 javascript:(void) 调用时,他们会看到一个空白页面,并显示以下错误消息:
ERROR
error
This page can't be displayed due to a security violation. Contact support for additional information.
Run Code Online (Sandbox Code Playgroud)
这里显示了一张图片:
如果用户摆脱 Javascript:void 调用,错误就会消失。这个错误是服务器错误吗?在我们的应用程序中没有直接处理这个错误的代码,浏览器返回了一个 200 OK POST 响应。
这个错误只发生在我们公共可访问的环境中,这再次让我相信这是一个服务器问题。
任何有关此错误的帮助或信息都会很棒。
我有两个相关的Python'导入'问题.它们很容易测试,但我想要语言定义的答案,而不是特定于实现的答案,我也对样式/惯例感兴趣,所以我在这里问.
1)
如果模块A导入模块B,模块B导入模块C,可以在模块A参考模块C中编码而不进行显式导入吗?如果是这样,我认为这是不好的做法我是否正确?
2)
如果我导入模块ABC,那么导入模块A和AB吗?如果是这样,那么按惯例更好地明确import A; import A.B; import A.B.C
吗?
在我的viewmodel上我有一个int
属性,我想用ComboBox公开它进行编辑,有一组有限的选择,比如16,8,4和2.有没有办法在XAML中指定选项,还是将值绑定回viewmodel?我想做这样的事情:
<ComboBox SelectedValue="{Binding MyIntProperty}">
<ComboBoxItem>16</ComboBoxItem>
<ComboBoxItem>8</ComboBoxItem>
<ComboBoxItem>4</ComboBoxItem>
<ComboBoxItem>2</ComboBoxItem>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
我知道我可以装配一个List<int>
代码并将其设置为ItemsSource,但我希望有一种方法可以做到这一点,不涉及viewmodel中的额外属性,它暴露了在代码中创建的集合.
我想解析加载HTML页面的CSS文件,但我不想让AJAX调用重新加载已经加载的CSS文件.有没有办法访问未解析的CSS文本?
例如,它允许访问Safari中的-moz-*声明.
我正在努力获取python/tkinter标签小部件来更新其内容.根据今天的早期主题,我按照如何组合小部件的说明进行操作.但是,在运行时,标签小部件不会更改内容,而只是保留其原始内容.据我所知,从来没有调用decrement_widget().有任何想法吗?
def snooze (secs):
"""
Snoozes for the given number of seconds. During the snooze, a progress
dialog is launched notifying the
"""
root = Tkinter.Tk()
prompt = 'hello'
label1 = Tkinter.Label(root, text=prompt, width=len(prompt))
label1.pack()
remaining = secs
def decrement_label ():
text = "Snoozing %d sec(s)" % remaining
remaining -= 1
label1.config(text=text, width=100)
label1.update_idletasks()
for i in range(1, secs + 1):
root.after(i * 1000, decrement_label )
root.after((i+1) * 1000, lambda : root.destroy())
root.mainloop()
Run Code Online (Sandbox Code Playgroud) c# ×2
html ×2
javascript ×2
python ×2
browser ×1
c ×1
c++ ×1
class ×1
clr ×1
coding-style ×1
combobox ×1
comparison ×1
conventions ×1
css ×1
data-binding ×1
dom ×1
import ×1
indexing ×1
module ×1
mvvm ×1
object ×1
objective-c ×1
rdbms ×1
security ×1
tkinter ×1
windows ×1
wpf ×1