問題タブ [memory-segmentation]

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 に答える
1341 参照

assembly - リアルモードで far アドレスにジャンプする

リアル モードで far アドレスにジャンプする必要がある状況があります。レジスタにセグメント値があり、fsレジスタにオフセットがgsあり、ジャンプ中に正確なレジスタの内容を維持する必要があります。次のような 1 つのアイデアを思いつきました。続く、

と仮定しbp、呼び出された宛先で読み取られない場合、NASM far jump / far call in real mode と ASM コード規則で見つけた別の方法を使用できます。fsgs

どの方法を使用すべきか、またはこれを達成する他の方法があるかどうか疑問に思っていますか? 私は x86 アセンブリのスキルがあまりないので、私の無知を許してください。

よろしく、

アルカ

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

c++ - 2D 配列代入での C++ セグメンテーション エラー

次のコードでセグメンテーション エラーが発生します。私はこのエラーに精通していません。

誰でも私が犯している間違いを指摘できますか?

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

c - libc オブジェクト ファイルの特定の関数アドレスはどこにありますか?

libc で関数のアドレスを見つけようとしています。

Cで次のようなことができることを知っています:

しかし、それで libc のシステム関数のベース アドレスが得られるかどうかはわかりません。プログラム内から何らかの間接ポインタを与えると思いますか?

私はgdbを実行していて、次のことを行いました:

プログラムの実行中に、多くのセグメントが得られましたが、libc.so が含まれているセグメント以外はどこを見ればよいかわかりません。

編集:

これは私が gdb で取得したものであり、「system」、「printf」、「exit」などをどこで見つけることができるのか疑問に思っています。rodata を確認したところ、そこにシステムを見つけることができましたが、それが関数自体であるかどうかはわかりません:

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

intel - 8086 のメモリセグメンテーション!! . 8086 と christsake のあまり人気のないメモリ セグメントについて、このタイトルのことは本当に難しいです。

8086 の 1MB メモリが 16 の論理セクションに分割されていることは知っていますが、そのような場所は 4 つしか知りません。残りについて誰か教えてください。

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

c - unix で仮想メモリ内の bss セグメント、データ セグメント、およびスタック全体をトラバースするにはどうすればよいですか

Mark & Sweep 戦略を使用して C 用のガベージ コレクターを作成しようとしていますが、bss セグメント、データ セグメントをトラバースする方法がわかりません。これらのセグメントの開始アドレスと終了アドレスを取得するにはどうすればよいですか? また、スタックの一番下を見つけるにはどうすればよいですか?

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

memory-management - セグメントが再配置された場合、プロセスのセグメント テーブルはどうなりますか?

システムがセグメンテーションのみを使用し、ページングを使用しないとします。セグメントがスワップアウトされて再配置された場合、セグメント テーブルはどうなりますか? 新しいセグメント番号を持つ予定はありますか? テーブルの古いエントリはどうなりますか?

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

c++ - セグメンテーション エラー (コア ダンプ) - エラーを修正できません

次のコードで問題が発生しています。Boost を使用して行列乗算を行っています。コードのテストに Gtesting を使用しています。次のコードをテストすると、次のエラーが発生します。

使用しているポインターに関係していることはわかっていますが、エラーが見つかりません。私はいくつかのことを試しましたが、うまくいきませんでした。私のコードは次のとおりです。Ubuntu 14.04 を実行しています。

助けてくれてありがとう。このエラーは私を夢中にさせています。

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

debugging - GDB 検索コマンド エラー「警告: y にあるターゲット メモリの x バイトにアクセスできません。検索を停止しています」

gdb を使用して、KMines で現在のフラグ数を見つけようとしています。存在しないメモリ位置を避けるために、最初にメモリ マッピングを探す必要があることはわかっています。そこでinfo proc mappings、コマンドを実行してメモリ セグメントを確認しました。結果からランダムなメモリ ギャップ ( 0xd27000-0x168b000) を取得し、次のように find コマンドを実行しました。find 0x00d27000, 0x0168b000, 10

しかし、warning: Unable to access 1458 bytes of target memory at 0x168aa4f, halting search.エラーが発生しました。アドレス 0x168aa4f は 0xd27000 から 0x168b000 の間にありますが、gdb はアクセスできないと言っています。なぜこれが起こるのですか?この状況を回避するにはどうすればよいですか? または、マップされていない/アクセスできないメモリの場所を無視する方法はありますか?

編集: アドレス 0x168aa4f の値を 1 に設定しようとしましたが、機能するため、gdb は実際にそのアドレスにアクセスできますが、find コマンドで使用するとエラーが発生します。しかし、なぜ?

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

assembly - x86 でのセグメントへの書き込み

テスト目的でセグメント (たとえば、 DS 以外のデータ セグメント GS など) に書き込もうとしている場合にハードウェアがどのように動作するかをテストしたいと思います... セグメントを指定できるアセンブリ命令はありますか? with.h にオフセットを付けて直接書き込みますか?

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

windows - Windows のメモリ管理は Linux とどう違うのですか? Windows OS はページングまたはセグメンテーションをサポートしていますか?

Windows と Linux のメモリ管理の違いについて知りたいのですが、Windows OS はページングまたはセグメンテーションをサポートしていますか?

私が理解しようとしているのは、すべてのプロセスが Windows マシンのすべての RAM を累積的に使用している場合、すべてのユーザーはシステムにログインすることさえできませんが、Linux システムの場合はそうではありません。

では、Linux システムではどのように達成されるのでしょうか?