尝试运行脚本时缓冲区溢出

时间:2018-12-27 11:45:32

标签: linux

我正在尝试运行文件。

# !/usr/bin/en sh
CAFFEROOT=/root/caffe
export LD_LIBRARY_PATH=$CAFFEROOT/build/lib/:$LD_LIBRARY_PATH
./app --ip 1.1.0.0:8887 --workers 1 --timeout 20

但我收到此错误消息。

root@1b311ba128b3:~/sharedfolder/code# sh run.sh 
*** buffer overflow detected ***: ./app terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7329f)[0x7f58d08bd29f]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f58d095887c]
/lib/x86_64-linux-gnu/libc.so.6(+0x10d750)[0x7f58d0957750]
./app[0x43dcfb]
./app[0x43e15c]
./app[0x40cdcf]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f58d086bf45]
./app[0x40d63f]
======= Memory map: ========
00400000-004c7000 r-xp 00000000 08:12 5513936                                /root/sharedfolder/code/app
006c6000-006c7000 r--p 000c6000 08:12 5513936                              /root/sharedfolder/code/app
006c7000-006c8000 rw-p 000c7000 08:12 5513936                            /root/sharedfolder/code/app
006c8000-006c9000 rw-p 00000000 00:00 0 
0187d000-018fb000 rw-p 00000000 00:00 0                                      [heap]

我不确定这意味着什么吗?关于如何处理此问题的任何想法都可能会有所帮助。预先感谢

1 个答案:

答案 0 :(得分:1)

gdb将是我执行此操作的工具。像

# !/usr/bin/en sh
CAFFEROOT=/root/caffe
export LD_LIBRARY_PATH=$CAFFEROOT/build/lib/:$LD_LIBRARY_PATH gdb ./app --ip 1.1.0.0:8887 --workers 1 --timeout 20

...然后

run

以下是一个很好的技巧,可以查看直到段错误为止正在执行的行:

使用上述gdb运行,​​然后:

set logging on
break main
run
while 1
step
end

...跟踪然后在gdb.txt