2017-06-02 1 views
0

私は、Windowsシステム上のELFファイルである部分を抽出/置換するためにobjcopyを使用します。ファイルを吹き飛ばすのを避けるにはどうすればいいですか?

>objcopy.exe -V 
GNU objcopy 2.17.50 20060824 
Copyright 2005 Free Software Foundation, Inc. 
This program is free software; you may redistribute it under the terms of 
the GNU General Public License. This program has absolutely no warranty. 

これは、一般的に動作します。

しかし、私のelfファイルには、ファイルサイズを減らすために配信前に削除する必要があるデバッグ情報が含まれています。

私はTHTオプション-gまたは--strip-debugは私が欲しいものを行う必要がありますが見つかりました:

>"objcopy.exe" --strip-debug -I elf32-big -O elf32-big with-debug.elf without-debug.elf 

しかし、それは無残に失敗します。代わりに、ファイルを小さくするのではと失敗する前に〜20メガバイトから3ギガバイトまでのファイルサイズを最大吹く:

objcopy.exe: without-debug.elf: File truncated 
objcopy.exe: without-debug.elf: No space left on device 

どのように私はcorectly objcopyを使用してELFからデバッグ情報を削除しますか?

BFD: without-debug.elf: warning: allocated section `.sdata' not in segment 

答えて

1

は、binutilsのバグのような音:これは重要ですが、objcopyを発行するほとんどのためのいくつかの警告は次のようにELFのセクションをotの場合


は知ってはいけません。

あなたは正式リリースではなく、ランダムに撮影されたスナップショットを使用しています。

私はbinutils(バージョン2.28)の最新リリースを最初に試してみます - あなたが打っているバグが既に修正されているチャンスがあります。もしそうでなければ、binutils bugzillaで報告することができます。

+0

私の問題は、私はそのバージョンに縛られているということです。新しいバージョンはトラブルを起こす別の機能では異なる動作をします... –

関連する問題