当前位置:  开发笔记 > 编程语言 > 正文

bc(standard_in)1:语法错误

如何解决《bc(standard_in)1:语法错误》经验,为你挑选了1个好方法。

我试图找到myfunc可执行文件中的位置:

#include 

void myfunc(){
    printf("Hello");
}

int main(){

}

我写了这个脚本:

#!/bin/bash -x
start=$(nm -S a.out|grep -w _start)
start_addr=$(echo $start | awk '{print $1}')
myfun=$(nm -S a.out|grep $1)
myfun_addr=$(echo $myfun | awk '{print $1}')
myfun_length=$(echo $myfun | awk '{print $2}')
echo $myfun_length
myfun_end=$(echo "obase=16;ibase=16;$myfun_addr + $myfun_length" | bc)
offset=$(echo "obase=16;ibase=16;$myfun_addr - $start_addr" | bc)

最后一行运行,但前面的行没有:

++ echo 'obase=16;ibase=16;0000000000400900 + 00000000000000bc'
++ bc
(standard_in) 1: syntax error
+ myfun_end=
++ echo 'obase=16;ibase=16;0000000000400900 - 0000000000400710'
++ bc
+ offset=1F0

pmg.. 6

bc中的十六进制数用大写字母表示.

尝试添加tr一些管道

... | tr "a-z" "A-Z" | ...

不要使用IBASE和OBASE,这些必须是小写的.



1> pmg..:

bc中的十六进制数用大写字母表示.

尝试添加tr一些管道

... | tr "a-z" "A-Z" | ...

不要使用IBASE和OBASE,这些必须是小写的.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有