如何使用参数和stdin作为输入来调试C程序

时间:2019-03-06 11:58:21

标签: c gdb

我想调试C程序。

def csv_upload_page(request):
    context = {}
    return render(request, 'index.html', context)


def on_csv_upload_ajax(request):
path = './csv/'
if request.method == 'POST':
    if 'file' in request.FILES:
        handle_uploaded_file(request.FILES['file'], str(request.FILES['file']))
        df = pd.read_csv(os.path.join(path, str(request.FILES['file'])))
        table_heading = list(df.columns.values)
        table_content = df.to_html(classes='table table-bordered table-hover thead-dark', index=False)

        context = {'table_heading': table_heading, 'table_content': table_content}

        return HttpResponse(context)

如何调试它?

2 个答案:

答案 0 :(得分:0)

不要在gdb命令行上执行此重定向,而应在gdb内的run命令上执行。

https://sourceware.org/gdb/current/onlinedocs/gdb/Input_002fOutput.html#Input_002fOutput

答案 1 :(得分:0)

为了更方便地使用GDB进行调试,应将<<endend之间的“此处字符串”行转换为文本文件(例如“ input.txt”)。然后,在gdb中,您可以使用set args命令来设置命令行参数和从文件重定向标准输入。

例如:假设文件“ input.txt”包含:

Monos(1,2)
Monos(6)

从外壳运行gdb,如下所示:

$ gdb ./test

在GDB中,设置命令行参数和标准输入的重定向:

(gdb) set args 1 2 3 < input.txt

设置任何断点,例如:

(gdb) b main

并开始运行代码:

(gdb) r