問題タブ [relocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3098 参照

r - R - フォルダー間で複数のファイルを移動する

R で file.rename を使用して単一のファイルを ond フォルダーから別のフォルダーに移動することについてここで回答された質問に基づいて、あるフォルダーから別のフォルダーにすべての (複数の) ファイルを移動するループ関数を R で構築する方法はありますか?すべての個々のファイルに明示的に名前を付ける必要なく、既存のフォルダーを作成できますか?

可能であれば、元のフォルダーをそのまま保持して、古いファイルを移動した後に新しいファイルで埋め始めることができるようにしたいと考えています。

ありがとう!

0 投票する
0 に答える
885 参照

linker - リンカーの奇妙な動作: 再配置が収まるように切り捨てられる

2 つの絶対記号を持つカーネル用のリンカー スクリプトがあります:_kernel_start_kernel_end. ただし、リンカーの再配置エラーが発生するのは次の場合のみ_kernel_endです。

このエラーについて SO で多くの質問がありましたが、特定の問題を解決するものは見つかりませんでした。

どうやら、これ:

...これは32ビットとして扱われますが、これは次のとおりです。

...64 ビットとして扱われます。_kernel_end次のように記号を線の上に移動すると. += KERNEL_BASE:

...その後、再び機能します。_kernel_endしかし、リンカースクリプトの最後に欲しいです。

リンカー スクリプトは、ブート コードをメモリの先頭に配置し、残りのコードを 64 ビット仮想メモリ空​​間の上位半分に配置します。次のようになります。

カーネルは本当に小さいので_kernel_start = 0x00100000_kernel_end = 0x00142000. 再配置エラーが発生することはありません。

_kernel_end再配置エラーが発生しないようにリンカー スクリプトを書き直すにはどうすればよいですか? mcmodel=largeこの1つのシンボルだけに使用したくありません。


シンボルを使用しているコードは次のとおりです。ラストです。

以下は、Rust でコンパイルされたオブジェクト ファイルの再配置テーブルのエントリです。

0 投票する
1 に答える
772 参照

git - ローカルの作業コピーから Subversion リポジトリを作成し、ログと履歴を保持する方法は?

Subversion リポジトリのローカル作業コピーがあります。このプロジェクトのサーバーはもう存在しませんが、作業コピーを使用したいので、可能であればプロジェクトのログと履歴を保持する新しいローカル リポジトリを作成する必要があります。

私は多くのことを試しましたが、これを行うために数日を費やしましたが、理解できませんでした. relocate と file:/// プロトコルに問題があったため、svnserve を使用して Windows サービスを作成しようとしました。しかし、私のフォルダには適切な構造がないようです。私のレポには .svn フォルダーしかありませんが、見つかった情報によると、conf、db、hooks フォルダーなどが必要であることがわかります...その結果、私のフォルダーは svn リポジトリとして認識されません。

これを行うことは可能ですか、そして何が適切な方法でしょうか。

私の最初の目標は、プロジェクトを Git に変換することでしたが、変換に失敗したため、最初にそれを動作する Subversion リポジトリにしようとしました。動作したら後で変換します。

私は多くの投稿を読みましたが、ほとんどはサーバー上で作業中のレポを処理する方法を説明しています。私の場合、古い作業コピーがあり、自分で管理していなかったサーバーがシャットダウンされました。

ご協力いただきありがとうございます

0 投票する
0 に答える
84 参照

assembly - distorm - アセンブリ命令のオペランドが ASLR (再配置セクション) の影響を受けているかどうかを調べる方法

x86 プラットフォームで移植可能な実行可能ファイル (PE) にdistorm 逆アセンブラーを使用しています。アセンブリ命令のオペランドのいずれかが再配置セクションの影響を受けるかどうかを示す既存の関数、マクロ、またはフラグはありますか?

0 投票する
1 に答える
1141 参照

linker-errors - Xtensa --- 危険な再配置: ウィンドウ化された長い通話が 1GB の境界を超える

コンパイル中に次のエラーが発生しました

(.sram.text+0x1283): 危険な再配置: ウィンドウ化されたロングコールが 1GB の境界を超えます。return が失敗する可能性があります: ( UND +0xdeadcafe)

関数の 1 つに。

アーキテクチャは Xtensa で、使用されるツールチェーンは Xtensa 用に構築された GNU ツールチェーンです。このエラーは、binutils ソース コードのファイル elf32-xtensa.c の関数 elf_xtensa_do_reloc() 内にあります。

このエラーの原因と考えられる解決策を教えてください。

0 投票する
0 に答える
323 参照

python - virtualenv 内で発生する奇妙な再配置エラー: `python: relocation error: python: symbol Øv�l��⎼�Ø┴�┌��⎼�Ø┴�` (etc...)

virtualenv 内で作業しているときに断続的に発生する非常に不可解なエラーに遭遇しています。

これまでに 3 ~ 4 回発生しましたが、問題を再現する条件を見つけるのが非常に難しいと感じています。まったく異なるコードを実行しているときに発生し、エラーを発生させた同じコードがエラーの前後に何度も問題なく実行された可能性があります。したがって、どのライブラリが問題を引き起こしているかを体系的に絞り込むことは現時点では現実的ではありません。そのため、私の説明があいまいまたは不完全に思われる場合は、あらかじめお詫び申し上げます。

症状

IPython セッション中に、再配置エラーが発生することがあり、その結果、Unicode 意味不明な内容が端末にダンプされます。問題が最後に発生したときの端末出力を次に示します。

...そして、このように数ページ続きます。この場合、エラーによって IPython セッションが実際に強制終了されることはありませんでしたが、プロンプトは完全に台無しになりました。

おそらくエラーメッセージとともに、制御文字を含むバイナリデータが端末にダンプされたに違いないため、すべて意味不明です。

同じ virtualenv 内から Python を起動しようとするたびに、同様の再配置エラーが表示されます。

この virtualenv を無効にするか、別の virtualenv に切り替えると、Python は正しく動作します。

回復

これが発生した最初の数回は、virtualenv を削除して、最初から再構築しました。最終的に、試行錯誤の末、壊れた仮想環境を再初期化することで回復できることを発見しました。つまり、

これにより、 に新しい Python バイナリが作成されます (および と$VIRTUAL_ENV/binの新しいコピーが提供されます)。pipsetuptools

考えられる原因?

virtualenv を再初期化することで問題が解決したという事実により、Python バイナリ自体が何らかの形で破損していると考えるようになりました。正常なコピーと破損したコピーのファイル サイズに違いは見られませんが、MD5 ハッシュは実際に異なります。

他の誰かが以前にこの種のエラーに遭遇したことがありますか? Python バイナリが破損する原因は何ですか? それ以外の点では、問題のマシンは完全に安定しています。メモリまたはディスクのエラーを疑う理由はなく、システム ログにも疑わしいものは見つかりません。

関連する可能性のあるバージョンの詳細を次に示します。

  • Ubuntu 15.04 (3.19.0-21-ジェネリック)
  • パイソン2.7.9
  • virtualenv 1.11.6
  • virtualenvwrapper 4.3.1

アップデート:

破損したバイナリ ファイルと破損していないバイナリ ファイルの比較を試みたところ、繰り返しパターンによって上書きされた 0xD000 と 0xDFF0 の間のバイト ブロックが見つかりました。

作業コピー:

壊れたコピー:

これ以上これを解釈するのに十分な知識はありませんが、場所とパターンが手がかりになるようです.

0 投票する
2 に答える
215 参照

linker - 仮想/論理メモリとプログラムの再配置

仮想メモリと論理メモリは、プログラムが互いのデータを破損しないようにするのに役立ちます。

プログラムの再配置は、複数のプログラムが互いに破損しないようにするという、ほぼ同様のことを行います。再配置は、オブジェクト プログラムを変更して、新しい別のアドレスにロードできるようにします。

仮想メモリ、論理メモリ、およびプログラムの再配置はどのように関連していますか? 彼らは似ていますか?それらが同じ/類似している場合、なぜプログラムの再配置が必要なのですか?