无法获取lldb来读取文件输入

时间:2016-02-23 16:29:23

标签: c macos stdin lldb

我正在使用lldb作为OSX中的独立调试器。我正在尝试使用文本文件作为输入来调试C可执行文件。 lldb文档指定了以下用于将stdin更改为给定文件的命令:

process launch -i <file>

使用此命令,lldb似乎忽略指定的文件,而是等待键盘输入。

这是预期的行为吗?如果是这样;我需要做些什么来实际操作我想要的输入文件?

tl;博士:我如何让lldb模仿标准终端执行,如:

./executable < <file>

2 个答案:

答案 0 :(得分:19)

我按照以下方式开展工作:

An error occurred: http://#cgi.server_name##cgi.script_name#?#cgi.query_string#<br />
Time: #dateFormat(now(), "short")# #timeFormat(now(), "short")#<br />

<!--- Smarter error catching for form fields --->   
<cfif (error.message contains "Invalid data '' for CFSQLTYPE CF_SQL_INTEGER") and isdefined("form")>
    <!--- This stores a list of the Id fields --->
    <cfloop collection="#form#" item="thisField">
        <!--- Get the last two characters of the field name --->
        <cfset lastTwoChars = right(thisField, 2)>
        <!--- Get the value of the field --->
        <cfset thisFieldValue = evaluate('form.#thisField#')>
        <!--- Check to see if this is an Id field and if it's value is blank. --->
        <cfif lastTwoChars eq 'Id' and thisFieldValue eq ''>
            <h3 style="font-weight: bold; color: red">#thisField# is blank and it's possibly an integer field.</h3>
        </cfif>
    </cfloop>
</cfif>

<cfdump var="#error#" label="Error">


<br/>
<cfdump var="#form#" label="Form">
<br/>
<cfdump var="#url#" label="URL">
<br/>
<cfdump var="#session#" label="session">

它解决了我的问题,但我真的没有解释为什么我的问题中的方法不能工作。

答案 1 :(得分:0)

我已经晚了几年,但是,如果有人在这里找到自己的方式,以下内容将有所帮助: This website包含lldb可以执行与gdb相同的所有多种方式。当然,如果您不关心gdb,则始终可以单独使用lldb命令列表。 要更具体地回答该问题,并且在上面链接的网站上也进行了重复,您可以执行以下操作来运行带有参数的可执行文件:

lldb <executable>
(lldb) process launch -- <whatever your args may be e.g. a file path>

(lldb) run <args>

或者只是

(lldb) r <args>