我正在开发一个malloc实验室程序,在该程序中我需要找到实用性和吞吐量的性能指数。我能够获得输出效率,但在第一次执行时有一个问题。
我已经给出了一组特定的文件,其中包括跟踪和其他文件,当我第一次尝试运行程序时,它显示错误,但当我用同一命令第二次到多次运行同一代码时,我没有得到错误,输出是否正常?为什么它在第一次运行时显示错误?在malloc中分配内存或执行操作有问题吗?
命令和第一时间错误如下,
enter code here
@ubuntu:$ make
当我第一次运行时,我得到了如下错误,
enter code here
gcc -Wall -O2 -m32 -c -o mdriver.o mdriver.c
mdriver.c: In function ‘remove_range’:
mdriver.c:438:9: warning: variable ‘size’ set but not used [-Wunused-but-set-variable]
int size;
^
mdriver.c: In function ‘read_trace’:
mdriver.c:498:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%d", &(trace->sugg_heapsize)); /* not used */
^
mdriver.c:499:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%d", &(trace->num_ids));
^
mdriver.c:500:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%d", &(trace->num_ops));
^
mdriver.c:501:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%d", &(trace->weight)); /* not used */
^
mdriver.c:524:12: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%u %u", &index, &size);
^
mdriver.c:531:12: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%u %u", &index, &size);
^
mdriver.c:538:12: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%ud", &index);
^
gcc -Wall -O2 -m32 -c -o mm.o mm.c
mm.c:780:13: warning: ‘mm_check’ defined but not used [-Wunused-function]
static int mm_check(void)
^
gcc -Wall -O2 -m32 -c -o memlib.o memlib.c
gcc -Wall -O2 -m32 -c -o fsecs.o fsecs.c
gcc -Wall -O2 -m32 -c -o fcyc.o fcyc.c
gcc -Wall -O2 -m32 -c -o clock.o clock.c
gcc -Wall -O2 -m32 -c -o ftimer.o ftimer.c
gcc -Wall -O2 -m32 -o mdriver mdriver.o mm.o memlib.o fsecs.o fcyc.o clock.o ftimer.o
我再次运行相同的命令
enter code here
@ubuntu:$ make
make: `mdriver' is up to date.
现在,它没有显示错误,之后如果我用所需的命令运行程序,它运行得很好,但它是第一次显示错误吗?
您的源代码中没有错误。有很多警告。即使源代码有警告,也会生成对象和可执行文件。在makefile中,如果时间戳保持不变,则不会重新编译文件。
为了更好地理解,请在源代码中消除一些编译错误,并一次又一次地运行make
命令,这样您就可以理解其中的区别。