1
我試圖找到可執行的myfunc
位置:BC(standard_in)1:語法錯誤
#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
我真的很想知道downvote的原因。這是我第一次使用'bc'。這兩條線看起來幾乎相同,都有有效的變量。許多環境都接受大寫和小寫十六進制數字。所以請解釋你爲什麼投下這個問題。 – robert
只是一個猜測downvote:沒有C參與任何問題或可能的答案。 – pmg
與其他Stackexchange網站不同,這裏有一些真正的瑣碎用戶。 – robert