标签: clr

如何查看导致clr.dll崩溃转储的c#代码?

我有一个Windows Forms应用程序(.NET 4),它在我的开发机器上运行良好但在其他两台测试机器上崩溃.我可以加载它在VS2010中创建的minidump.

选择"混合调试"导致Visual Studio滥用CPU显然无穷无尽(我在大约20分钟后杀死了devenv).

当我"仅使用Native进行调试"时,它找不到源(即使我已将源镜像到测试机器上的同一文件夹中).它简单地说:

YourWinApp .exe.hdmp中0x793f5b8c处的未处理异常 :0xC0000409:0xc0000409.

然后告诉我

调用堆栈位置:clr.dll!793f5b8c()

我如何找出导致应用程序崩溃的原因?在显示"通知Microsoft"对话框时,我可以采取完整的故障转储,这会有所帮助吗?

c# clr memory-dump .net-4.0

1
推荐指数
1
解决办法
3472
查看次数

是的,myval =(someconditon)?someVal:myval优化为不设置值,以防它为假

CPath = (CPath == null) ? Request.Path : CPath;
Run Code Online (Sandbox Code Playgroud)

首先,我希望CLR能让我这样做吗?Request.Path并没有打扰我创建一个:

但我问它会优化它吗?或者仍然分配.

c# compiler-construction clr optimization

1
推荐指数
1
解决办法
89
查看次数

String类型和字符串类型有什么区别?(大写第一个字母)

可能重复:
在C#中,String和string之间有什么区别

我无法在任何地方找到这些信息,但我确信这只是一个简单的答案.它们可以互换吗?

.net c# clr

1
推荐指数
1
解决办法
223
查看次数

Win32控制台应用程序或CLR - > Windows窗体应用程序?

我必须有一个表单作为gui,但我还需要使用win32 API编写,因为我需要在应用程序启动时创建另一个进程...

我创建了Win32控制台 - >空项目..然后有一个选项将Windows窗体添加为UI ...是否可能???? ...因为我选择了基础项目为win32控制台应用程序.

但我真的需要应用程序中的表单.

clr winapi c++-cli

1
推荐指数
1
解决办法
1042
查看次数

什么是DiscardableAttribute用于?

System.Runtime.CompilerServices.DiscardableAttribute即使对于原型编译器,我找不到实际用途.任何见解?谢谢.

.net c# compiler-construction clr rotor

1
推荐指数
1
解决办法
165
查看次数

好奇心:将C#结构转换为对象仍然会复制它

这个问题更多的是出于好奇而不是真正的问题.请考虑以下代码(C#4.0,如果重要):

class Program {
  static Point myPoint = new Point(3, 5);

  static void Main(string[] args) {
    Console.WriteLine("Point Struct Before: " + myPoint);
    object point = GetPoint();
    Console.WriteLine("Point Object Before: " + point);
    myPoint.X = 10;
    Console.WriteLine("Point Struct After: " + myPoint);
    Console.WriteLine("Point Object After: " + point);
  }

  static object GetPoint() {
    return myPoint;
  }
}
Run Code Online (Sandbox Code Playgroud)

这输出如下:

Point Struct Before: 3;5
Point Object Before: 3;5
Point Struct After: 10;5
Point Object After: 3;5
Run Code Online (Sandbox Code Playgroud)

现在,这应该工作,这意味着返回的点GetPoint()被复制而不是被引用.(否则最后一行也会读"10; 5".)

我现在的问题是:为什么这有效?编译器如何知道是复制还是引用对象?这是否意味着此决定是在运行时而不是在编译期间完成的?

此外,这现在允许我设置point …

c# clr boxing c#-4.0

1
推荐指数
2
解决办法
4974
查看次数

C#中'this'的含义是什么?

在'CLR via C#'的第170页:


public sealed class Program {
    public Int32 GetFive() { return 5; }
    public static void Main() {
       Program p = null;
       Int32 x = p.GetFive(); // In C#, NullReferenceException is thrown
    }
}
Run Code Online (Sandbox Code Playgroud)

从理论上讲,上面的代码很好.当然,变量p是null,但是当调用非虚方法(GetFive)时,CLR只需要知道p的数据类型,即Program.如果GetFive确实被调用,则此参数的值将为null.由于参数未在GetFive方法中使用,因此不会抛出NullReferenceException.


原谅我的愚蠢.我记得CLR通过'this'找到了真正的方法代码,它始终隐含在方法delcare的第一个参数中,为什么它说'当调用非虚方法(GetFive)时,CLR需要只知道p'的数据类型?

c# clr

1
推荐指数
1
解决办法
261
查看次数

CLR如何通过C#,VB.Net中的方法调用,

我不知道如何解释我的问题,请以示例形式接受:

我用C#语言编写了一个库,其方法如下:

public object GetValueAt(int idx) {
    return arr[idx];
}
Run Code Online (Sandbox Code Playgroud)

然后我在VB.Net中使用它,当然在C#和VB.Net之间有一个不同的索引.因此,如果我调用该方法idx = 6,CLR如何知道我尝试访问的对象(它idx = 5在C#上有)?

这只是我的例子,那么.Net中现有的库怎么样?

.net clr

1
推荐指数
1
解决办法
132
查看次数

如何通过CLR完成内存管理

从很多天起,我正在寻找一个详细的文档,它将帮助我理解CLR完成的垃圾收集,其中包括一些编码行,包括一些函数,类,值类型和引用类型.如果有某些文件逐步显示,请分享.

c# memory clr garbage-collection memory-management

1
推荐指数
1
解决办法
5303
查看次数

静态构造函数是否保证不被内联?

大概吧!

编辑:这个问题的动机是:在我看来,由于静态构造函数的语义,他们永远无法安全地内联.

.net c# clr

1
推荐指数
1
解决办法
222
查看次数