水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:gcc的std::regex实现,容易栈耗尽
楼主
|
z16166
|
2023-03-30 22:00:07
|
展开
我也碰到了,gcc 12.2.0
看起来还没有fix,只能先用别的替代
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86164
--
FROM 221.218.163.*
2楼
|
z16166
|
2023-04-01 14:35:31
|
展开
我用的正则式是R"((\w+://)?([^:/]+)(:\d+)?(/.*))",拆分简单url的。
url长度有五六百时就会崩,不过单独的小demo并不崩,应该是大点的程序的栈占用更容易到默认的1MB。
那个bug里说的是.*的递归导致(可能)。
【 在 ylh0315 的大作中提到: 】
: mark
--
FROM 221.218.163.*
5楼
|
z16166
|
2023-04-05 12:19:13
|
展开
跟vs版本应该有关系,有些正则式实现可能不是递归实现的
这个正则式我先是用vs2019测试没问题,拿到gcc上就栈耗尽了
【 在 toutouqi 的大作中提到: 】
: 以前用vs也遇到栈不够的问题,同样的正则换perl就毫无问题。
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*
7楼
|
z16166
|
2023-04-05 12:24:34
|
展开
没有试,因为我这里macos平台是另一波人写,用不到这个代码。
【 在 stub 的大作中提到: 】
: clang呢
--
FROM 221.218.163.*
9楼
|
z16166
|
2023-05-07 16:47:39
|
展开
又遇到一个regex崩的,递归层次很深,vscode看不到top的stack frame了,不知道是哪个正则式导致的
不过换了vs2022 + visual gdb,能看到top frame,万幸,不然得手动gdb了。
原因是前后加了\s*,去掉就好了
\s*XXXX\s* -> XXX
--
修改:z16166 FROM 114.240.244.*
FROM 114.240.244.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版