问题列表 - 第17439页

c ++析构函数一塌糊涂,无法调试

当我运行我的程序时,一切都很顺利.最后打印出来:

*** glibc detected *** ./streamShare: double free or corruption (fasttop): 0x08292130 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xcc2ff1]
/lib/tls/i686/cmov/libc.so.6[0xcc46f2]
/lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0xcc779d]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x1c86f1]
./streamShare[0x804be7f]
./streamShare[0x804be3e]
./streamShare[0x804abc0]
./streamShare[0x804a5f2]
./streamShare[0x804a1c4]
./streamShare[0x804a1d7]
./streamShare[0x804a46a]
./streamShare[0x804ba45]
./streamShare[0x804b49c]
./streamShare[0x804ac68]
./streamShare[0x804ac48]
./streamShare[0x804a676]
./streamShare[0x804a237]
./streamShare[0x8049a3f]
./streamShare[0x804d2e5]
./streamShare[0x804d34d]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xc6eb56]
./streamShare[0x8049361]
Run Code Online (Sandbox Code Playgroud)

我检查过,它发生在一个函数返回时,程序的所有对象都会自动进行实例化.无论如何,我没有为这些对象定义任何析构函数,我尝试使用STL容器和TR1 shared_ptr.我想一切都发生在默认的析构函数中.有没有办法知道它在哪里分手?我的意思是,我想知道哪个物体破坏会造成整个混乱.我正在使用这些容器和共享指针:

typedef std::tr1::shared_ptr<messageListener> mlsptr;

typedef std::map<const char*, mlsptr, ltstr> CONSTCHP2MSLST;
Run Code Online (Sandbox Code Playgroud)

messageListener没有析构函数.其中两个向量:

std::vector<MSG> queueto1;
Run Code Online (Sandbox Code Playgroud)

其中MSG析构函数是:

MSG::~MSG() {
    destroy();
}

void MSG::destroy() {
    if (payload != NULL)
        delete[] payload;
    payload = NULL;
    payloadLen = 0;
}
Run Code Online (Sandbox Code Playgroud)

从来没有出现问题,我不应该......

任何推荐如何跟踪这个问题?我很笨...

编辑:

这里是VALGRIND输出:

valgrind ./streamShare -v …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management

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

同一台机器上的两个程序相互通信的最佳方法是什么

我需要将一些数据(整数)从一个(C++)程序传递到另一个(C#).最快的方法是什么?

PS:操作系统:Windows XP

c# c++ ipc communication

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

如果在帖子后模型中的值发生更改,则表单仍会显示旧值

这种行为让我对自己的理智感到好奇.

我有一个表单有两个接受输入的地方,我们称之为ValueA和ValueB.用户可以在任何一个和表单提交中输入值.

<div id="MyUpdateTarget">
 <% using (Ajax.BeginForm("MyControllerAction", new AjaxOptions { UpdateTargetId = "MyUpdateTarget" })) { %>
  <%=Html.TextBox("ValueA", Model.ValueA, new Dictionary<string, object> {
                                                    { "onchange", "$('#SubmitButton').click(); return false;" },
       }) %>
  <%=Html.TextBox("ValueB", Model.ValueB, new Dictionary<string, object> {
                                                    { "onchange", "$('#SubmitButton').click(); return false;" },
       }) %>
  <input id="SubmitButton" type="submit" value="Save" style="display: none;" />
 <% } %>
</div>
Run Code Online (Sandbox Code Playgroud)

Controller Action如下所示:

public ActionResult MyControllerAction(MyViewModel viewModel)
{
Run Code Online (Sandbox Code Playgroud)

//做一些其他的事......

 return PartialView("MyPartialView", viewModel);
}
Run Code Online (Sandbox Code Playgroud)

ViewModel就是这样的:

public class MyViewModel
{
 private int _valueA;
 private int _valueB;

 public int …
Run Code Online (Sandbox Code Playgroud)

c# ajax asp.net-mvc http-post

7
推荐指数
2
解决办法
4233
查看次数

为什么.html工作而不是innerHTML或appendChild

我正在尝试向div添加ajax响应(它是带有表格,表单等的HTML代码).

在FF innerHTML工作完美,但在IE中,它给了我一个未知的错误.

我尝试了很多东西,但是当我添加jQuery并.html在div上运行方法我想要插入代码时,我才能使用它.

任何人都在关心为什么这个有用而不是简单innerHTML?我试着查看.html()代码,但我想我不是JS的优秀,因为我不明白它在做什么.

javascript ajax jquery internet-explorer

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

php是否内置了对base32值的转换?

我知道我可以使用number_format,但有没有办法表示base32数字?例如,十六进制可以用0x表示,八进制可以用前面的0表示.在php中有什么代表base32号码吗?

php base32

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

网站子目录可以由不同的Web服务器提供服务吗?

假设我在网址上托管了一个网站:

http://www.mysite.com/

假设这是由托管服务提供商"A"托管的.

现在,我想在另一台主机上托管此站点内的子目录:

http://www.mysite.com/blog/

...说我主持这个托管服务提供商"B".因此,本网站下的所有页面都将位于完全不同的数据中心.

这种配置是否可行?

dns hosting web-hosting web

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

在哪里可以找到匈牙利符号的备忘单?

我正在使用系统匈牙利符号的旧式COM C ++项目。因为这是对遗留代码的维护,所以约定以原始样式编写代码-我们的较新代码不是用这种方式编码的。因此,我对更改该标准或对我们过去的罪过进行讨论不感兴趣=)

是否有针对系统匈牙利符号的在线备忘单?

到目前为止,我能找到的最好的文章是堆栈溢出之前的讨论帖子,但是它并没有我过去需要的所有东西。有人还有其他链接吗?

(制作此社区Wiki,希望它能成为一个自我填充的列表)

hungarian-notation

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

输入词典?

有没有人听说过使用类型作为键并支持继承的"类型字典"?

在我的应用程序中,我想要一个从类型到函数的字典,有点像这样:

Dictionary<Type, Func<object, object>> Transformers;
Run Code Online (Sandbox Code Playgroud)

这个想法是它将用于根据类型以某种方式转换对象:

// Transform an object 'obj'
object result = Transformers[obj.GetType()](obj)
Run Code Online (Sandbox Code Playgroud)

普通字典的缺点是类型必须完全匹配.因此,如果我为IList <T>编写了一个变换器,那么将它放在Transformers字典中是没有用的,因为没有对象具有IList <T>类型(只有T [],List <T>等).换句话说,如果obj是List <T>,则普通字典中的查找将找不到IList <T>的变换器.

假设没有TypeDictionary <TValue>这样的东西,如果不是太难,我可以考虑写一个.有什么想法可以实现吗?

.net

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

你如何为java servlet编写单元测试?

单元测试java servlet的最佳实践是什么?顺便说一下:这是一个我有一些困难的话题:你如何对java servlet进行单元测试?

java unit-testing servlets

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

通用数据结构的默认值

我想写一个SparseVector[T]类,其中T可以是double,int或boolean.

该类不会被数组支持(因为我想要一个稀疏的数据结构),但我已经看到,当我构建一个AnyVal类型的空数组时,元素被初始化为默认值.例如:

 scala> new Array[Int](10)
 res0: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

 scala> new Array[Boolean](10)
 res1: Array[Boolean] = Array(false, false, false, false, false, false, false, false, false, false)

 scala> new Array[Double](10) 
 res2: Array[Double] = Array(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
Run Code Online (Sandbox Code Playgroud)

如何在班级中包含此默认值?我想要的行为是:

val v = new SparseVector[Double](100)
println( v(12) ) // should print '0.0'
val w = new SparseVector[Boolean](100)
println( v(85) ) // should print …
Run Code Online (Sandbox Code Playgroud)

generics scala default-value

7
推荐指数
2
解决办法
5028
查看次数