• ベストアンサー

スタック領域を変更するには

当方の環境は gcc バージョン 3.2.3 20030502 (Red Hat Linux 3.2.3-20) を使用しておりますが、 スタック領域を変更する事は出来ないのでしょうか? 出来るならばその方法を出来ないのであれば出来ないと 答えて頂けると助かります。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

Linux環境では、スタックは自動拡張され、使えば使っただけ消費して行きます。つまり、サイズの指定は無意味なので指定出来ません。 最後は、メモリリソースを使い切って、それ以上拡張不可能になった時点でcore dumpです。 http://www.nurs.or.jp/~ogochan/linux/SA2.html のページの後半の「Linuxの実行される空間は、いわゆる「多重仮想空間」になる。これは、プロセス毎に~」の部分を読んで下さい。

take_july
質問者

お礼

chie65536さん回答ありがとうございます。 コンパイラでは指定できない事が分かりました。ありがとうございます。 JSP(TOMCAT)から動作させる環境ではメモリが余っているのにスタックオーバーフローが発生してしまいました。 もう一度質問してみますので、よろしければ回答お願いします。

関連するQ&A

  • スタック領域変更

    Stack overflow エラーが発生したので、スタック領域を拡張しようと思い、ネットで調べたのですが、その設定画面が自分の持っているやつにはありませんでした。 自分のは Microsoft Visual C++です。 スタック領域変更の仕方教えて下さい。

  • gccでスタックサイズを変更するにはどうしたらよいのでしょうか?

    gccでスタックサイズを変更するにはどうしたらよいのでしょうか? gccのスタックに関するオプションについて詳しく知りたいです。

  • H8マイコン スタック領域について

    スタック領域について教えて下さい。 [動作環境]  開発環境:ルネサス HEW Version 4.08  マイコン:ルネサス H8/1653  コンパイラ:H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ V7.00 HEWにて新規作成しますと、セクション定義にスタック領域(S)のアドレスと stacksct.h 内に スタック領域のサイズ #pragma stacksize 0x200 が自動で生成されると思います。 しかし、入手したH8/1653用のサンプルには #pragma stacksize のような サイズ指定がありませんでした。 [サンプル] (1)セクション定義やスタック領域のサイズ指定が無い (2)サブコマンドファイル(xxxx.sub)内でアドレスは設定されているが サイズの設定が無い。 -- サブコマンドファイル(xxxx.sub)-- START  CStart/00000000; START  P,C,D/00000400; START  B,R/00FF2000; START S/00FFC000; [質問]  質問1   (1)のスタック領域はどこに配置されるのでしょうか?  質問2   (2)のスタック領域は 00FFC000 を基準にどう確保   されるのでしょうか? (a)の方向へ確保?(b)の方向へ確保?          00F00000 (a)         ↑       00FFC000 (設定アドレス)         ↓       00FFFFFF (b)        質問3   (1)、(2)共にスタック領域と同時にヒープ領域も指定がありません。   これらは指定しなくても問題ないものなのでしょうか?   また、熟練者の方は指定しないものなのでしょうか? よろしくおねがいします。

  • Red Hat Linux release 7.2に乗るバージョン

    お世話になります。 今現在、新しいシステムの開発環境として 古いLinuxサーバーを再利用しようとしているのですが そのシステムで使うDBをMySQLにするかPostgreSQLに するか比較検討を行おうとしています。 いろいろと調べた結果、RedHat7.2にはMySQLの最新版は 乗りそうに無いという事はわかったのですが、じゃあ どのバージョンが乗るのかというのがわからなくて 困っています。 Linuxを新しくすればいいのはわかっているのですが そのサーバーは他のシステムでも使っている為 新しくする事もできません。 という事で、Red Hat Linux 7.2に乗るMySQLのバージョンは どれなのか?また、出来ればLinuxのバージョン毎に 対応するMySQLのバージョンが書かれているようなサイトが ありましたら教えていただきたいと思います。 環境 Red Hat Linux release 7.2 (Enigma) Kernel 2.4.7-10 on an i686 gcc 2.96 gmake 3.79.1 他に情報が必要な場合はその都度書かせていただきます。 以上、よろしくお願いします。

  • linux上でのcoreダンプの仕方

    現在、私が組んでいるC言語の中であるパッケージを使っておりますが、 その中で異常が出てしまい原因を調べております。 当方の環境は OS:Linux(Red Hat Enterprise Linux ES release 3) gcc バージョン 3.2.3 パッケージの開発元に問い合わせた所、coreダンプを送ってくださいといわれましたが、探して見た所、それらしきものは出力されていないようです。 unixでは"tras"コマンドでトレースできるような事を聞いたのですが、 linuxでも出来るのでしょうか? 検討違いな質問かも知れませんが、宜しくお願いします。 情報が足りなければいってください。

  • gccの再インストールについて

    お助けください。 現在、Red Hat Linux 8.0 がインストールしてあって、 そこに、gcc3.2が入っています。 訳あってその環境に、gcc2.96をインストールしたいのですが、それは可能でしょうか?? 参考になるサイトでも構いません。経験ある方、教えて下さい。 宜しくお願い致します。

  • gcc 4.1.2 をインストールしたい

    OSは以下です。 ----------------------------------------------------------------------------- OS:Red Hat Enterprise Linux ES release 4 (Nahant Update 6) ----------------------------------------------------------------------------- gccバージョンは以下となります。 ----------------------------------------------------------------------------- gcc バージョン 3.4.6 20060404 (Red Hat 3.4.6-9) ----------------------------------------------------------------------------- 上記のgcc バージョンを 4.1.2 に上げたいのですが、どうすればいいでしょうか? 対象マシンはリモートで操作しており、外部ネットには繋がらない環境に置かれております。 そのため、yum によるインストールができません。 必要なrpmパッケージを対象マシンにアップロードして、rpmコマンドによるインストールを 考えているのですが、どこから必要なファイルをダウンロードすればよいのか わかりません。 過去の質問から以下のサイトを見つけましたが、どのファイルが redhat で実行できるのか、 わかりません。 http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=gcc4&field[]=1&field[]=2 ソースからインストールできるのならば、その方法でいいです。 どなたか、方法をご教示願います。

  • rootのpass変更方法について

    red hat linux 7.3 を使っています(初心者)。 rootのパスワードを変更したいのですが、方法がよくわかりません。 どなたか教えていただけないでしょうか。 よろしくお願いします。

  • RedHatプリインストールサーバーのハードディスクの領域

    今まで、自分で普通のパソコンにLinuxをインストールして使ったことはあるのですが、このたびサーバー機を使うことになりました。そこで、よくわからないことがあります。 DELLのサーバー機PowerEdge750、Red Hat Enterprise Linux ES 3がプリインストールされたものを購入しました。ハードディスク容量は146GBあるはずなのですが、起動して中をみてみると、Red Hatがインストールされている(dfで出てくる)のは30GB弱だけです。付属のマニュアルやDELLのサポートサイトをみてみたのですが、そういう空き領域があることやそれをどう使うことを推奨しているのかについての情報を見つけることができませんでした。 プリインストールのサーバー機は、このように(フォーマットされていない?)空き領域があるのが普通なのでしょうか?そうであれば、ハードディスクを使いきるには皆さんどういう方法を使われているのでしょうか?一般的・わかりやすい・簡単なやりかたを教えてください。 よろしくお願いします。

  • OSインストール時の領域をactiveにするとはどういう意味

    ウィンドウズ98にred hat7.1をインストールしたいのですが、それに先立ちHDの領域を基本領域と拡張領域に分けました。それで、ウインドウズを再インストールしました。そのときに拡張領域をactiveにしてインストールしたために再起動すると動かなくなりました。そこで、基本領域をactiveにしてウインドウズを入れなおしました。そういった事件?で気がついたのですが。本題です。ウインドウズにリナックスを入れるときにはリナックスは拡張領域に入れることになると思いますが、どこに入れるかの指定は聞いてくるのですか?自動的に決まってしまうのですか?インストール前にガイドを読んでも書いていないので質問しました。基本的なことですが、わかりません。

専門家に質問してみよう