ホームページ バックエンド開発 PHPの問題 php 拡張機能でセグメンテーション違反が発生した場合の対処方法

php 拡張機能でセグメンテーション違反が発生した場合の対処方法

Jul 11, 2020 am 09:24 AM
php

PHP でのセグメンテーション違反の解決策: 最初に "ulimit -a" を確認し、次にコア ファイルのサイズを制限しないように "ulimit -c unlimited" を設定し、次に gdb を使用してプログラムを実行し、セグメンテーション違反によって記録されたファイル; 最後に指定する コア ファイルのサイズは十分です。

php 拡張機能でセグメンテーション違反が発生した場合の対処方法

Linux 上の C プログラムでは、メモリアクセスエラーなどによりセグメントフォルトが発生することが多く、このときシステムコアダンプ機能が有効になっていると、メモリ イメージがハードディスクにダンプされ、gdb を使用してコア ファイルを分析し、システム セグメンテーション フォールトが発生したときのスタック状況を復元できます。これはプログラムのバグを見つけるのに非常に役立ちます。

システム コア ファイルのサイズ制限を表示するには、ulimit -a を使用します。システムが生成できるコア ファイルのサイズを設定するには、ulimit -c [kbytes] を使用します。

ulimit -c 0 はコア ファイルを生成しません

ulimit -c 100 は最大コア ファイルを 100k に設定します

ulimit -c unlimited はコア ファイル サイズを制限しません

手順:

1. セグメンテーション違反が発生した場合、ulimit -a (core file size (blocks, -c) 0) を確認しますが、ファイルがありません。

2. 設定: ulimit -c unlimited はコア ファイル サイズを制限しません。

3. プログラムを実行すると、セグメンテーション違反が発生すると、自動的にコアに記録されます (php - f WorkWithArray.php)

4. ls -al core.* そのファイルの下 (-rw------- 1 leconte leconte 139264 01-06 22:3 1 core.2065)

5. gdb を使用してプログラムを実行し、障害記録ファイルをセグメント化します。 (gdb ./test core.2065)

6.どの行が間違っているか指摘してもらえますか?

多くのシステムのデフォルトのコア ファイル サイズは 0 です。コア ファイルのサイズを指定するには、シェル起動スクリプト /etc/bashrc または ~/.bashrc に ulimit -c コマンドを追加します。生成することができます。

また、/proc/sys/kernel/core_pattern にコアファイルのファイル名テンプレートを設定することもできます。詳細はコアの公式マニュアルを参照してください。

関連紹介:

Linux ulimit コマンドは、シェル プログラムのリソースを制御するために使用されます。

ulimit はシェルの組み込みコマンドであり、シェル実行プログラムのリソースを制御するために使用できます。

構文

ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]
ログイン後にコピー

パラメータ:

-a 現在のリソース制限設定を表示します。

-c コアファイルの最大値をブロック単位で設定します。

-d プログラム データ セクションの最大値 (KB 単位)。

-f <ファイル サイズ> シェルが作成できる最大のファイル (ブロック単位)。

-H リソースのハード制限を設定します。これは、管理者によって設定された制限です。

-m 使用可能なメモリの上限を KB 単位で指定します。

-n 同時に開くことができるファイルの最大数を指定します。

-p パイプ バッファのサイズを 512 バイトで指定します。

-s スタックの上限を KB 単位で指定します。

-S リソースの柔軟な制限を設定します。

-t CPU 使用時間の上限を秒単位で指定します。

-u ユーザーが開くことができるプログラムの最大数。

-v 使用できる仮想メモリの上限を KB 単位で指定します。

関連知識の詳細については、PHP 中国語 Web サイト をご覧ください。

以上がphp 拡張機能でセグメンテーション違反が発生した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

See all articles