无法计算表达式,因为当前线程处于堆栈溢出状态"在注释行

本文关键字:状态 栈溢出 quot 注释 于堆 表达式 计算 因为 线程 前线 | 更新日期: 2023-09-27 18:02:13

我使用SNMP库创建了一个c# SNMP应用程序。

但随后我得到一个错误"不能评估表达式,因为当前线程处于堆栈溢出状态"在注释行。

try
        {
            UdpAddress udp = new UdpAddress(args[1]); //error occur at this line
            SnmpVersion ver = SnmpVersion.SNMPv1;
            //some other snmp codes
        }

这个代码声明了args变量:

public Hashtable getValues(SNMPObject[] SNMPObjects)
    {
        int nbrArgs = 5 + 2 * SNMPObjects.Length;
        string[] args = new string[nbrArgs];
        args[0] = "get";
        args[1] = this.getIPAddress();
        args[2] = "-Dl0"; //don't make debug
        args[3] = "-c" + this.getCommunityRead(); //community read
        args[4] = "-C" + this.getCommunityWrite(); //community write
        int i = 5;
        foreach (SNMPObject mySNMPObject in SNMPObjects)
        {
            args[i] = "-o";
            args[i + 1] = mySNMPObject.getOID();
            i = i + 2;
        }
        //lancer la requête
        Hashtable htResult = Manager.makeOrder(args);
        return htResult;
    }

当我按行调试时,参数[]传递为:

[0] = "get"  
[1] = "10.0.0.120"  
[2] = "-Dl0"  
[3] = "-cpublic"  
[4] = "-Cpublic"  
[5] = "-o"  
[6] = "1.3.6.1.2.1.1.5.0"  
[7] = "-o"  
[8] = "1.3.6.1.2.1.2.2.1.16.1"

无法计算表达式,因为当前线程处于堆栈溢出状态"在注释行

一个可能的原因是在UdpAddress构造函数中的某个地方存在无限循环。你能展示一下UdpAddress构造函数里有什么吗?