Eclipse 在运行调试器时破坏了带有空格字符的程序参数

Posted

技术标签:

【中文标题】Eclipse 在运行调试器时破坏了带有空格字符的程序参数【英文标题】:Program argument with space characters is broken by Eclipse when running the debugger 【发布时间】:2013-08-17 14:41:36 【问题描述】:

我有一个需要七个参数的程序。 问题是第五个参数有空(空格)字符。 所以我把它放在双引号中,程序就运行了。

问题:

当我尝试在 Eclipse 中使用调试器时,系统会使用 \" 而不是 " .结果是第五个参数被破坏了,我无法使用调试器...

这是我在参数列表中的内容

168815 blabla/ product_group_and_eshop_global_id blaee/test/test "<unique_string>products in the</unique_string><TotalNumberUniquestring>2</TotalNumberUniquestring><currentNumberUniquestring>1</currentNumberUniquestring><div_OR_table_navigatin_instructions><divORTableForward_skip>1</divORTableForward_skip> <divForward_in>1</divForward_in></div_OR_table_navigatin_instructions><type_of_product_substring>SEARCH</type_of_product_substring><where_to_search_the_name>title</where_to_search_the_name><currency>$</currency><price_extraction_start_Key>$</price_extraction_start_Key><price_extraction_end_Key>&lt</price_extraction_end_Key>" filename_mode
/src/cpp/test-pages/FrontLoad.html

这是 Eclipse 在控制台中打印的内容

/bin/bash: -c: line 0: syntax error near unexpected token `<'
/bin/bash: -c: line 0: `exec /media/Debug/gcom_au 168815 blabla/ product_group_and_eshop_global_id blaee/test/test \"<unique_string>products in the</unique_string><TotalNumberUniquestring>2</TotalNumberUniquestring><currentNumberUniquestring>1</currentNumberUniquestring><div_OR_table_navigatin_instructions><divORTableForward_skip>1</divORTableForward_skip> <divForward_in>1</divForward_in></div_OR_table_navigatin_instructions><type_of_product_substring>SEARCH</type_of_product_substring><where_to_search_the_name>title</where_to_search_the_name><currency>$</currency><price_extraction_start_Key>$</price_extraction_start_Key><price_extraction_end_Key>&lt</price_extraction_end_Key>\" filename_mode
/src/cpp/test-pages/FrontLoad.html'

【问题讨论】:

这可能是您重新考虑程序的界面设计以使其可调试的机会。您可能应该可以选择从文件中获取带有空格的 XML-ish 参数,而不是要求它位于命令行上,至少出于调试目的。我没有解决 Eclipse-running-the-debugger 问题的方法——我只能首先建议一种方法来规避该问题。 尝试像这样转义单个空格字符:\ ,而不是使用引号。 我已经硬编码了第五个参数,只是为了调试......如果有人有更好的解决方案,我将不胜感激。 :-) 【参考方案1】:

我找到了解决方案:我将“更改为” 所以。

168815 blabla/ product_group_and_eshop_global_id blaee/test/test "<unique_string>products in the</unique_string><TotalNumberUniquestring>2</TotalNumberUniquestring><currentNumberUniquestring>1</currentNumberUniquestring><div_OR_table_navigatin_instructions><divORTableForward_skip>1</divORTableForward_skip> <divForward_in>1</divForward_in></div_OR_table_navigatin_instructions><type_of_product_substring>SEARCH</type_of_product_substring><where_to_search_the_name>title</where_to_search_the_name><currency>$</currency><price_extraction_start_Key>$</price_extraction_start_Key><price_extraction_end_Key>&lt</price_extraction_end_Key>" filename_mode /src/cpp/test-pages/FrontLoad.html

变成

168815 blabla/ product_group_and_eshop_global_id blaee/test/test '<unique_string>products in the</unique_string><TotalNumberUniquestring>2</TotalNumberUniquestring><currentNumberUniquestring>1</currentNumberUniquestring><div_OR_table_navigatin_instructions><divORTableForward_skip>1</divORTableForward_skip> <divForward_in>1</divForward_in></div_OR_table_navigatin_instructions><type_of_product_substring>SEARCH</type_of_product_substring><where_to_search_the_name>title</where_to_search_the_name><currency>$</currency><price_extraction_start_Key>$</price_extraction_start_Key><price_extraction_end_Key>&lt</price_extraction_end_Key>' filename_mode /src/cpp/test-pages/FrontLoad.html

【讨论】:

以上是关于Eclipse 在运行调试器时破坏了带有空格字符的程序参数的主要内容,如果未能解决你的问题,请参考以下文章

在 Eclipse 中调试时查看完整的字符串

VS Code问题:当我保存时,行和空格会自动添加并破坏代码

eclipse 调试非常慢

Eclipse CDT 插件问题

C ++添加仅在调试时运行的调试代码

如何在 Python 3.10 中的匹配情况下获取带空格的字符串