读书人

未处理的错误:用户断点

发布时间: 2012-09-18 16:21:42 作者: rapoo

未处理的异常:用户断点
出错部分程序如下,应该是内存出错?求教高手啊。
//获取面信息
int iTemp;
iTemp=pm_dannang->getNumTriangles(true);
//定义三角形容器
vector<cTriangle*> m_vectorTrisdannangTrue;
//提取三角形
for (int i=0; i<=iTemp-1; i++)
{
m_vectorTrisdannangTrue.push_back(pm_dannang->getTriangle(i, true));
}

in.numberoffacets = pm_dannangnew->getNumTriangles(true);
in.facetlist = new tetgenio::facet[in.numberoffacets];
in.facetmarkerlist = new int[in.numberoffacets];

//将三角面片信息写入pm_dannangnew
int m=0;
int n=0;
for (int i=0; i<=m_vectorTrisdannangTrue.size()-1; i++)
{
cVector3d m_CVPosV0, m_CVPosV1, m_CVPosV2;
int m_iIndexV0New, m_iIndexV1New, m_iIndexV2New;
//提取三角形的各个顶点
m_CVPosV0=m_vectorTrisdannangTrue.at(i)->getVertex0()->getPos();
m_CVPosV1=m_vectorTrisdannangTrue.at(i)->getVertex1()->getPos();
m_CVPosV2=m_vectorTrisdannangTrue.at(i)->getVertex2()->getPos();
//寻找三角形各个顶点对应m_vectorVertexNew顶点的序号
for (int j=1; j<=m_vectorVertexNew.size(); j++)
{
if (m_CVPosV0.equals(m_vectorVertexNew.at(j-1)->getPos()))
{
m_iIndexV0New=j;
break;
}
}
for (int j=1; j<=m_vectorVertexNew.size(); j++)
{
if (m_CVPosV1.equals(m_vectorVertexNew.at(j-1)->getPos()))
{
m_iIndexV1New=j;
break;
}
}
for (int j=1; j<=m_vectorVertexNew.size(); j++)
{
if (m_CVPosV2.equals(m_vectorVertexNew.at(j-1)->getPos()))
{
m_iIndexV2New=j;
break;
}
}

f = &in.facetlist[n];
f->numberofpolygons = 1;
f->polygonlist = new tetgenio::polygon[f->numberofpolygons];
f->numberofholes = 0;
f->holelist = NULL;
p = &f->polygonlist[0];
p->numberofvertices = 3;
p->vertexlist = new int[3];
p->vertexlist[m] = m_iIndexV0New;
p->vertexlist[m+1] = m_iIndexV1New;
p->vertexlist[m+2] = m_iIndexV2New;
m+=3;
n++;
}

[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

[解决办法]
哪个地方溢出了吧
[解决办法]
“用户断点”通常是由于返回地址所在的栈空间被破坏,函数返回时跳转到0xCC(int 3)填充的无效的代码区域引起的。
[解决办法]
帖这些代码基本上没意义
1、写日志
2、调试
3、崩溃后生成dump文件,然后调试
[解决办法]
调试吧,看挂在哪里

读书人网 >C++

热点推荐