gpt4 book ai didi

c - bc (standard_in) 1 : syntax error

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:33 25 4
gpt4 key购买 nike

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

#include <stdio.h>

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

最佳答案

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

尝试将 tr 添加到某个管道

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

不要使用 IBASE 和 OBASE,它们需要小写。

关于c - bc (standard_in) 1 : syntax error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34066251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com