我正在尝试找到内存泄漏问题.
我的项目是一个基于ATL的对话框项目,它使用DirectShow和标准库.
我的程序总共有45个内存泄漏,每个都有24个字节.
我在stdafx.h中定义了#defn _CRTDBG_MAP_ALLOC等,以及DEBUG_NEW来获取每个内存泄漏的文件和行号.
但是,不会打印文件行号.内存块都是"普通"块,如下所示:
{180} normal block at 0x003E6008, 24 bytes long. Data: < > _> > W > A0 AE 3E 00 B0 5F 3E 00 A0 AE 3E 00 57 00 00 00
Run Code Online (Sandbox Code Playgroud)
我已经尝试将以下行添加到_tWinMain()的开头
_CrtSetBreakAlloc(180);
Run Code Online (Sandbox Code Playgroud)
为了打破分配,但调试器根本没有中断.
任何人都可以告诉我如何追踪难以捉摸的内存泄漏?
最后,这是我的_tWinMain() - 我在退出之前调用_CrtDumpMemoryLeaks().
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow){
_CrtSetBreakAlloc(180);
HRESULT hRes = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
ATLASSERT(SUCCEEDED(hRes));
::DefWindowProc(NULL, 0, 0, 0L);
AtlInitCommonControls(ICC_BAR_CLASSES);
//HINSTANCE hInstRich = ::LoadLibrary(CRichEditCtrl::GetLibraryName());
hRes = _Module.Init(NULL, hInstance);
ATLASSERT(SUCCEEDED(hRes));
int nRet = Run(lpstrCmdLine, nCmdShow); …Run Code Online (Sandbox Code Playgroud) 我想添加一个按钮(默认支持)和链接jQuery UI对话框.如何在jQuery UI对话框中添加链接?在我的情况下,我喜欢保存按钮和取消链接.提前致谢.
我正在用Delphi编写一个屏幕保护程序.我想要在每个显示器上全屏显示TpresentationFrm.为此,我写了以下(不完整)程序:
program ScrTemplate;
uses
...
{$R *.res}
type
TScreenSaverMode = (ssmConfig, ssmDisplay, ssmPreview, ssmPassword);
function GetScreenSaverMode: TScreenSaverMode;
begin
// Some non-interesting code
end;
var
i: integer;
presentationForms: array of TpresentationFrm;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
case GetScreenSaverMode of
ssmConfig:
Application.CreateForm(TconfigFrm, configFrm);
ssmDisplay:
begin
SetLength(presentationForms, Screen.MonitorCount);
for i := 0 to high(presentationForms) do
begin
Application.CreateForm(TpresentationFrm, presentationForms[i]);
presentationForms[i].BoundsRect := Screen.Monitors[i].BoundsRect;
presentationForms[i].Visible := true;
end;
end
else
ShowMessage(GetEnumName(TypeInfo(TScreenSaverMode), integer(GetScreenSaverMode)));
end;
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
当ssmDisplay被执行的代码,两种形式确实是创造了(是的,我有整整两个显示器).但它们都出现在第一个监视器上(索引0,但不是主监视器).
单步执行代码时,我发现它Screen.Monitors[i].BoundsRect是正确的,但由于某种原因,表单获得了不正确的边界:
Watch Name Value (TRect: Left, …Run Code Online (Sandbox Code Playgroud) 我有需要通过basicHTTPBinding进行通信的手持设备.我有合同,一切都按照广告宣传.
我需要扩展它以便轻松支持转换到测试环境,培训和生产.我采用了端口路由,认为我可以通过端口差异暴露不同的端点,并根据端口,决定我想要信息的数据库.
我似乎无法使这项工作,到目前为止,没有任何信息表明它可以完成.由于端口是可选的,因此可能不是.
有人做过这样的事吗?
实体框架4 - STE - 简单数据库与单表博客具有BlogID PK列...
var samplesDbEntities = new SamplesDBEntities();
var blogId = Guid.NewGuid();
samplesDbEntities.Blogs.AddObject(new Blog() { BlogID = blogId });
var objectSetResult = samplesDbEntities.Blogs
.Where(p => p.BlogID == blogId)
.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
(代码执行的结果=> objectSetResult ==在最后一行之后为null)
AFAIK,ObjectContext是UoW模式的实现,在这种情况下,我想我应该从ObjectSet(Repository)返回结果只是"标记为瞬态"有人可以解释一下我做错了什么以及为什么objectSetResult在这里有空值?
(是的,我知道ObjectStateManager,但对我而言,它更像是上面提到的架构问题的补丁)
我知道缩小尝试通过删除空白字符来减小文件大小.有时事情最终会出现在一条线上,但通常会有多条线.我注意到,只要出现空格,就会发生换行.把它全部放在一条线上不是更好吗?
我仍在尝试为SSO(在*nix上运行)找到基于Java的解决方案,我可以在JBoss上使用它来针对Active Directory /域控制器进行授权.我最初尝试通过NTLM执行此操作,但放弃了因为它在Windows Server> = 2008上不受支持.
因此,我正在尝试使用Kerberos实现此功能,但似乎无法找到正确/可行的解决方案.请指出正确的方向,说明如何设置这样的配置,如何验证Active Directory和/或域控制器,以便:
任何帮助表示赞赏!
UPDATE
我正在使用jcifs-ext-0.9.4和jcifs-krb5-1.3.12开发解决方案.我按如下所述设置了web.xml:
<web-app>
<!-- servlet / servlet-mapping / welcome-file-list skipped -->
<filter>
<filter-name>auth</filter-name>
<filter-class>jcifs.http.AuthenticationFilter</filter-class>
<init-param>
<param-name>java.security.auth.login.config</param-name>
<param-value>/WEB-INF/login.conf</param-value>
</init-param>
<init-param>
<param-name>jcifs.spnego.servicePrincipal</param-name>
<param-value>HTTP/testconn@mydomain.com</param-value>
</init-param>
<init-param>
<param-name>jcifs.spnego.servicePassword</param-name>
<param-value>supersecret</param-value>
</init-param>
<init-param>
<param-name>sun.security.krb5.debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>java.security.krb5.realm</param-name>
<param-value>mydomain.com</param-value>
</init-param>
<init-param>
<param-name>java.security.krb5.kdc</param-name>
<param-value>testdom01.mydomain.com </param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>TESTDOMAIN</param-value>
</init-param>
<init-param>
<param-name>jcifs.http.enableNegotiate</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>jcifs.http.basicRealm</param-name>
<param-value>mydomain.com</param-value>
</init-param>
<init-param>
<param-name>jcifs.http.domainController</param-name>
<param-value>testdom01.mydomain.com</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
如果尝试访问应用程序,这会导致以下堆栈跟踪:
2010-07-22 15:53:10,588 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/google].[default]] Servlet.service() for servlet …Run Code Online (Sandbox Code Playgroud) java authentication kerberos active-directory single-sign-on
有没有办法从.NET CF代码检测我们是在仿真器还是真实设备上运行?
谢谢Dominik
我已经使用Spring/GWT使用Flash上传文件.
当我用GWT发送ajax请求并尝试获取用户的ip地址时,我得到一个ipv4地址,如:127.0.0.1
但是当我用flash上传我的文件时(以及在同一个webapp上的post请求)我得到一个ipv6地址0:0:0:0:0:0:0:1
我使用相同的代码来获取用户ip,即:
ServletRequestAttributes att = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
att.getRequest().getRemoteAddr();
Run Code Online (Sandbox Code Playgroud)
问题是我使用一个使用ip地址的签名来确保用户可以上传文件(由于使用flash上传时会话丢失的错误)以及当我使用ajax或Post via flash时ip地址发生变化.
有什么问题,我怎么能得到相同的IP格式?
谢谢