コード例 #1
0
        private void reload()
        {
            // this.dkmEvalResult.InspectionContext;
            txtOutput.Text = "";
            ulong address = this.dkmEvalResult.Address.Value;

            DkmProcess process = this.dkmEvalResult.InspectionContext.Thread.Process;

            byte[] buffer = new byte[1024];
            process.ReadMemory(
                address,
                DkmReadMemoryFlags.None,
                buffer
                );

            using (BSONIterator it = new BSONIterator(buffer))
            {
                while (it.Next() != BSONType.EOO)
                {
                    BSONValue value = it.FetchCurrentValue();
                    String    s     = value.ToString();

                    txtOutput.Text += s;
                    txtOutput.Text += "\n";
                    continue;
                }
            }

            return;
        }
コード例 #2
0
ファイル: TestBSON.cs プロジェクト: skyformat99/ejdb-csharp
        public void TestIterate1()
        {
            var doc = new BSONDocument();

            doc["a"]  = "av";
            doc["bb"] = 24;
            //doc["ccc"] = BSONDocument.ValueOf(new{na1 = 1, nb = "2"});
            //doc["d"] = new BSONOid("51b9f3af98195c4600000000");

            //17-00-00-00                       +4
            //02-61-00-03-00-00-00-61-76-00		+10
            //10-62-62-00-18-00-00-00			+8
            //00								+1
            Assert.AreEqual("17-00-00-00-02-61-00-03-00-00-00-61-76-00-10-62-62-00-18-00-00-00-00",
                            doc.ToDebugDataString());
            BSONIterator it = new BSONIterator(doc);

            Assert.AreEqual(doc.ToByteArray().Length, it.DocumentLength);
            var c = "";

            while (it.Next() != BSONType.EOO)
            {
                c += it.CurrentKey;
            }
            Assert.AreEqual("abb", c);
            it.Dispose();

            it = new BSONIterator(doc);
            var cnt = 0;

            while (it.Next() != BSONType.EOO)
            {
                BSONValue bv = it.FetchCurrentValue();
                Assert.IsNotNull(bv);
                if (cnt == 0)
                {
                    Assert.IsTrue(bv.BSONType == BSONType.STRING);
                    Assert.IsTrue(bv.Key == "a");
                    Assert.AreEqual("av", bv.Value);
                }
                if (cnt == 1)
                {
                    Assert.IsTrue(bv.BSONType == BSONType.INT);
                    Assert.IsTrue(bv.Key == "bb");
                    Assert.AreEqual(24, bv.Value);
                }
                cnt++;
            }
        }
コード例 #3
0
ファイル: TestBSON.cs プロジェクト: skyformat99/ejdb-csharp
        public void TestIterate2()
        {
            var doc = new BSONDocument();

            doc["a"] = "av";
            doc["b"] = BSONDocument.ValueOf(new{ cc = 1 });
            doc["d"] = new BSONOid("51b9f3af98195c4600000000");
            Assert.AreEqual(3, doc.KeysCount);
            //Console.WriteLine(doc.KeysCount);
            //Console.WriteLine(doc.ToDebugDataString());
            //2E-00-00-00					    +4
            //02-61-00-03-00-00-00-61-76-00		+10 (14)
            //03-62-00							+3  (17) "d" =
            //0D-00-00-00						+4  (21) doc len = 13
            //10-63-63-00-01-00-00-00 -00		+9  (30)
            //07-64-00							+3  (33)
            //51-B9-F3-AF-98-19-5C-46-00-00-00-00	 +12 (45)
            //00									+1 (46)
            Assert.AreEqual("2E-00-00-00-" +
                            "02-61-00-03-00-00-00-61-76-00-" +
                            "03-62-00-" +
                            "0D-00-00-00-" +
                            "10-63-63-00-01-00-00-00-00-" +
                            "07-64-00-" +
                            "51-B9-F3-AF-98-19-5C-46-00-00-00-00-" +
                            "00", doc.ToDebugDataString());
            BSONIterator it = new BSONIterator(doc);
            int          c  = 0;

            foreach (var bt in it)
            {
                if (c == 0)
                {
                    Assert.IsTrue(bt == BSONType.STRING);
                }
                if (c == 1)
                {
                    Assert.IsTrue(bt == BSONType.OBJECT);
                }
                if (c == 2)
                {
                    Assert.IsTrue(bt == BSONType.OID);
                }
                ++c;
            }
            bool thrown = false;

            Assert.IsTrue(it.Disposed);
            try {
                it.Next();
            } catch (ObjectDisposedException) {
                thrown = true;
            }
            Assert.IsTrue(thrown);

            c  = 0;
            it = new BSONIterator(doc);
            foreach (var bv in it.Values())
            {
                if (c == 0)
                {
                    Assert.AreEqual("a", bv.Key);
                    Assert.AreEqual("av", bv.Value);
                }
                if (c == 1)
                {
                    Assert.AreEqual("b", bv.Key);
                    BSONDocument sdoc = bv.Value as BSONDocument;
                    Assert.IsNotNull(sdoc);
                    foreach (var bv2 in new BSONIterator(sdoc).Values())
                    {
                        Assert.AreEqual("cc", bv2.Key);
                        Assert.AreEqual(1, bv2.Value);
                        Assert.AreEqual(BSONType.INT, bv2.BSONType);
                    }
                }
                if (c == 2)
                {
                    Assert.AreEqual(BSONType.OID, bv.BSONType);
                    Assert.IsInstanceOf(typeof(BSONOid), bv.Value);
                    var oid = bv.Value as BSONOid;
                    Assert.AreEqual("51b9f3af98195c4600000000", oid.ToString());
                }
                c++;
            }
        }
コード例 #4
0
ファイル: TestBSON.cs プロジェクト: rayleyva/ejdb
        public void TestIterate1()
        {
            var doc = new BSONDocument();
            doc["a"] = "av";
            doc["bb"] = 24;
            //doc["ccc"] = BSONDocument.ValueOf(new{na1 = 1, nb = "2"});
            //doc["d"] = new BSONOid("51b9f3af98195c4600000000");

            //17-00-00-00 						+4
            //02-61-00-03-00-00-00-61-76-00		+10
            //10-62-62-00-18-00-00-00			+8
            //00								+1
            Assert.AreEqual("17-00-00-00-02-61-00-03-00-00-00-61-76-00-10-62-62-00-18-00-00-00-00",
                            doc.ToDebugDataString());
            BSONIterator it = new BSONIterator(doc);
            Assert.AreEqual(doc.ToByteArray().Length, it.DocumentLength);
            var c = "";
            while (it.Next() != BSONType.EOO) {
                c += it.CurrentKey;
            }
            Assert.AreEqual("abb", c);
            it.Dispose();

            it = new BSONIterator(doc);
            var cnt = 0;
            while (it.Next() != BSONType.EOO) {
                BSONValue bv = it.FetchCurrentValue();
                Assert.IsNotNull(bv);
                if (cnt == 0) {
                    Assert.IsTrue(bv.BSONType == BSONType.STRING);
                    Assert.IsTrue(bv.Key == "a");
                    Assert.AreEqual("av", bv.Value);
                }
                if (cnt == 1) {
                    Assert.IsTrue(bv.BSONType == BSONType.INT);
                    Assert.IsTrue(bv.Key == "bb");
                    Assert.AreEqual(24, bv.Value);
                }
                cnt++;
            }
        }
コード例 #5
0
ファイル: TestBSON.cs プロジェクト: rayleyva/ejdb
        public void TestIterate2()
        {
            var doc = new BSONDocument();
            doc["a"] = "av";
            doc["b"] = BSONDocument.ValueOf(new{cc = 1});
            doc["d"] = new BSONOid("51b9f3af98195c4600000000");
            Assert.AreEqual(3, doc.KeysCount);
            //Console.WriteLine(doc.KeysCount);
            //Console.WriteLine(doc.ToDebugDataString());
            //2E-00-00-00					   	+4
            //02-61-00-03-00-00-00-61-76-00		+10 (14)
            //03-62-00							+3  (17) "d" =
            //0D-00-00-00						+4  (21) doc len = 13
            //10-63-63-00-01-00-00-00 -00		+9 	(30)
            //07-64-00							+3 	(33)
            //51-B9-F3-AF-98-19-5C-46-00-00-00-00	 +12 (45)
            //00									+1 (46)
            Assert.AreEqual("2E-00-00-00-" +
                "02-61-00-03-00-00-00-61-76-00-" +
                "03-62-00-" +
                "0D-00-00-00-" +
                "10-63-63-00-01-00-00-00-00-" +
                "07-64-00-" +
                "51-B9-F3-AF-98-19-5C-46-00-00-00-00-" +
                "00", doc.ToDebugDataString());
            BSONIterator it = new BSONIterator(doc);
            int c = 0;
            foreach (var bt in it) {
                if (c == 0) {
                    Assert.IsTrue(bt == BSONType.STRING);
                }
                if (c == 1) {
                    Assert.IsTrue(bt == BSONType.OBJECT);
                }
                if (c == 2) {
                    Assert.IsTrue(bt == BSONType.OID);
                }
                ++c;
            }
            bool thrown = false;
            Assert.IsTrue(it.Disposed);
            try {
                it.Next();
            } catch (ObjectDisposedException) {
                thrown = true;
            }
            Assert.IsTrue(thrown);

            c = 0;
            it = new BSONIterator(doc);
            foreach (var bv in it.Values()) {
                if (c == 0) {
                    Assert.AreEqual("a", bv.Key);
                    Assert.AreEqual("av", bv.Value);
                }
                if (c == 1) {
                    Assert.AreEqual("b", bv.Key);
                    BSONDocument sdoc = bv.Value as BSONDocument;
                    Assert.IsNotNull(sdoc);
                    foreach (var bv2 in new BSONIterator(sdoc).Values()) {
                        Assert.AreEqual("cc", bv2.Key);
                        Assert.AreEqual(1, bv2.Value);
                        Assert.AreEqual(BSONType.INT, bv2.BSONType);
                    }
                }
                if (c == 2) {
                    Assert.AreEqual(BSONType.OID, bv.BSONType);
                    Assert.IsInstanceOf(typeof(BSONOid), bv.Value);
                    var oid = bv.Value as BSONOid;
                    Assert.AreEqual("51b9f3af98195c4600000000", oid.ToString());
                }
                c++;
            }
        }