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><</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><</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><</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><</price_extraction_end_Key>' filename_mode /src/cpp/test-pages/FrontLoad.html
【讨论】:
以上是关于Eclipse 在运行调试器时破坏了带有空格字符的程序参数的主要内容,如果未能解决你的问题,请参考以下文章