Runtime Error:Segmentation fault 怎么找出有关问题所在

Runtime Error:Segmentation fault 如何找出问题所在
Runtime Error:Segmentation fault
辅助解释:
Segmentation fault:段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区域

oj时出现上述错误,在VS2013中正常运行,也没有warning,不知问题在哪里或者可能在哪里?

引用
输入
第一行输入T,表示有T组测试数据(T<=5)
接下来一行输入整数n,代表有n个区间(0=<n<=10^5)
接下来n行,每行输入三个整数x,y,id.代表区间[x,y]所对应的城市ID。数据确保任意俩个区间交集为空,且ID唯一。(0=<x<y<=10^8 , 0=<ID<=10^8)
接下来一行输入整数m,代表m次查询(0=<m<=10^5)
接下来m行,每行输入一个整数V,代表所查询的IP(V<=10^8)
输出
对于每次查询,输出一行,表示其对应的城市ID。
如果未找到,输出-1


#include <iostream>
#include <vector>
using namespace std;
class ip
{
public:
int m;
ip() :id(3){}
void save(); //一边插入一边排序
long long int search(long long int V); //找V所在ID
private:
int T, n;
vector<vector<long long int> > id;
long long int dich(int left, int right,long long int V); //二分法定位
};

void ip::save()
{
cin >> T >> n;
long long int a, b, Id;
int j;
for (int i = 0; i < n; ++i)
{
cin >> a >> b >> Id;
id[0].push_back(a);
id[1].push_back(b);
id[2].push_back(Id);
for (j = i; j >0 && id[0][j-1]>a; --j)
{
id[0][j] = id[0][j - 1];
id[1][j] = id[1][j - 1];
id[2][j] = id[2][j - 1];
}
id[0][j] = a;
id[1][j] = b;
id[2][j] = Id;
}
cin >> m;
}

long long int ip::search(long long int V)
{
if (long long int x=dich(0, n-1,V)) return x;
else return -1;
}

long long int ip::dich(int left, int right,long long int V)
{
if (V<id[0][left] || V > id[1][right])
return -1;
int mid;
mid = (left + right) / 2;
if (V >= id[0][mid] && V <= id[1][mid])
return id[2][mid];
else if (V < id[0][mid])
return dich(left, mid, V);
else
return dich(mid + 1, right, V);
}

int main()
{
ip ip_s;
long long int v;
ip_s.save();
for (int i = ip_s.m; i > 0; --i)
{
cin >> v;
cout << ip_s.search(v) << endl;
}
return 0;
}

------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

------解决思路----------------------
long long int ip::search(long long int V)
{
    if (long long int x=dich(0, n-1,V)) return x;
    else return -1;
}

如果查出来ID正好是0,楼主岂不是直接返回-1?
虽然这个不是楼主想说的那个问题吧,但是我看到了不说出来也痒痒
------解决思路----------------------
段错误,这个应该是linux下遇到的吧?
难道没有coredump嘛?用gdb可以详细定位问题行啊