作者mizuyoru3423 (水夜mizuyoru)
看板C_and_CPP
标题[问题] 使用 map 导致 Segmentation fault
时间Sun Nov 3 18:35:06 2019
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux (Windows Subsystem for Linux, Ubuntu 18.04)
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
编译器:GCC 7.4.0
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
无
问题(Question):
资料 insert 完後,需要用 find 找资料,但出现错误,且错误并非每次都出现
错误位置: 第31行,find function
喂入的资料(Input):
./main.cpp order.json info.txt
order.json:
https://pastebin.com/FBTn9rRq
info.txt:
https://pastebin.com/wAguCmjL
预期的正确结果(Expected Output):
2
0
0
1
错误结果(Wrong Output):
执行阶段: Segmentation fault (core dumped)
gdb debug: 没有错误
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
http://codepad.org/soCIfu0e
补充说明(Supplement):
这个错误很奇怪,有时候出现,有时候却没有,gdb也找不到错误
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.51.210 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1572777310.A.E39.html
1F:推 b0920075: 分析 core dump咧? 11/03 18:54
我网路上看了很久,我还是不知道 core dump的位置在哪,我只动了 ulimit -c unlimited,还需要动什麽吗
※ 编辑: mizuyoru3423 (111.251.51.210 台湾), 11/03/2019 19:02:53
2F:→ mizuyoru3423: 已解决,说起来有点惭愧,只是我一开始的 order 指11/03 20:40
3F:→ mizuyoru3423: 标忘了new 而已11/03 20:40
4F:→ mizuyoru: 我还以为看到自己11/03 21:29
我当时也想用这个帐号注册,原来就是你
5F:推 achicn3: 恭喜两位可以结婚了11/04 01:07
※ 编辑: mizuyoru3423 (111.251.51.210 台湾), 11/04/2019 09:19:38
6F:→ mizuyoru: 这麽中二的名字没想到除了我以外还有其他人会用11/04 10:23
7F:推 playgame555: 不求甚解的路过 以前遇过类似的问题(不是map)11/04 18:30
8F:→ playgame555: 在main下面加一个够大的矩阵 int big_array[4096];11/04 18:31
9F:→ playgame555: 之类的就会动了 我不知道为啥 推测是用pointer new11/04 18:32
10F:→ playgame555: class的时候 没有要到该有的空间 等到call item的11/04 18:33
11F:→ playgame555: 时候 pointer指到程式外面去了11/04 18:34
12F:→ playgame555: BTW我把Code载下来用GDB执行还真的不会挂掉= =11/04 18:36
13F:→ playgame555: 不用GDB的时候大概3次死1次11/04 18:37
www,其实实际原因也不是map,只是我的class就只有一个data menber而已
14F:→ Lipraxde: 用 valgrind 看看吧,一些基本的错误很容易就可以抓出11/04 21:29
15F:→ Lipraxde: 来的11/04 21:29
看起来蛮好玩的,改天试试
※ 编辑: mizuyoru3423 (111.251.51.210 台湾), 11/04/2019 22:55:03
※ 编辑: mizuyoru3423 (111.251.51.210 台湾), 11/04/2019 22:56:30
※ 编辑: mizuyoru3423 (111.251.51.210 台湾), 11/04/2019 22:58:56
16F:推 Bencrie: valgrind 之外还有 gcc 的 -fsanitize=address 11/05 01:21