Daha çox

ArcGIS Coğrafi İşləmə Alətlərindən Skript Xətasının Yanlış Göstəricisi Düzəldilir?

ArcGIS Coğrafi İşləmə Alətlərindən Skript Xətasının Yanlış Göstəricisi Düzəldilir?


ArcGIS 10.2 -ni yeni öyrənirəm və hazırladığım bir dbs cədvəli üçün Coğrafi Məlumat Bazasına İxrac (tək) seçimindən istifadə etməyə çalışana qədər yaxşı işləyirdi. O vaxtdan bəri, indi idxal/ixrac funksiyaları üçün eyni Script Səhvini alıram. Ancaq Geodatabase -ə (çoxsaylı) ixrac etməyə çalışdım və səhv açılmadı. Texniki dəstəklə danışdım və indiyə qədər mənə kömək edə bilmədilər. GIS haqqında çox şey bilmirəm, buna görə bu problemi həll etmək mənim üçün çətindir və bəzi işlərə davam edə bilmirəm.


Sadəcə bu problemi həll etdim. Etməli olduğunuz şey aşağıdakılardır: Windows -da gedin: İdarəetmə Paneli -> Proqramlar -> Bir proqramı silin.

Sonra "Masaüstü üçün ArcGIS" üzərinə sağ vurun -> "Sil/dəyişdir" seçin.

ArcGIS Quraşdırma informasiya qutusu açılacaqdır. "Təmir" seçimini seçin.

Təmir prosedurlarını bitirdikdən sonra ArcGIS düzgün işləyəcək!


Məlumat kəsişməsini təmir edərək bu səhvi həll etdim. quraşdırma. Mən də arxa plan emalını söndürmüşəm.


2 Cavab 2

Dəyişikliklərin düzgün olmadığı təqdirdə, əvvəlcə bölmə masasının ehtiyat nüsxəsini çıxarmaq daha yaxşıdır. Sonra köhnə bölmə masasını bərpa etmək mümkündür. Sürücü sda və amp olarsa başqa sürücüyə qeyd edin:

Gdisk istifadə edin və arakəsmələrin p ilə düzgün olduğunu yoxlayın və bölmə cədvəlini yazmaq üçün w istifadə edin. Düzgün deyilsə, çıxmaq üçün q istifadə edin. Bu, ilkin, ehtiyat nüsxəsini və qoruyucu MBR -ni yeniləməlidir.

b GPT məlumatlarını bir fayla yedekləyin
c bölmənin adını dəyişdirin
d bir hissəni silin
bir bölmə haqqında ətraflı məlumat göstərirəm
məlum bölmə növlərini sadalayıram
n yeni bir bölmə əlavə edin
yeni bir boş GUID bölmə masası (GPT) yaradın
səh bölmə cədvəlini çap edin
q dəyişiklikləri saxlamadan çıxın
r bərpa və çevrilmə variantları (yalnız mütəxəssislər)
s sıralama bölmələri
t bölmə tip kodunu dəyişdirin
v diski yoxlayın
w diskə cədvəl yazın və çıxın
x əlavə funksionallıq (yalnız mütəxəssislər üçün)
? bu menyu çap edin

Aşağıdakı Rod Smithin şərhini gördüyünüzdən əmin olun, rodbooks saytında gdisk müəllifidir.


Başlamayan Windows Cihazlarının Düzəldilməsi

Sistemin işə salınması ilə bağlı problem olduqda, işə salınarkən səhv mesajları göstərə bilər. Bu mesajlar sistem BIOSundan (ROM BIOS və ya UEFI firmware) gələ bilər və ya Windows tərəfindən yaradıla bilər. BIOS tərəfindən göstərilən tipik səhv mesajlarına aşağıdakılar daxildir:

  • Yanlış sistem diski
  • Yükləmə uğursuzluğu
  • Sabit disk xətası
  • NT yükləyicisi yoxdur
  • Əməliyyat sistemi çatışmır

Bu və buna bənzər mesajlar, anakartdakı BIOS və ya UEFI firmware çipinin əməliyyat sisteminiz üçün başlanğıc fayllarını tapa bilmədiyini göstərir. Mümkün səbəblərə aşağıdakılar daxil ola bilər:

  • Yükləmə qaydasında (BIOS/UEFI) əvvəlcə media olan, yüklənə bilməyən bir sürücü göstərilir.
  • Kompüter və#8217s sistem sürücüsü düzgün müəyyən edilməmişdir (BIOS/UEFI).
  • Daxili sabit diskdən anakarta gedən məlumat və ya elektrik kabelləri boşdur və ya uğursuz olub (hardware).
  • Sürücü uğursuz oldu (hardware).

Bunlar ehtimal sırasına görə sıralanmışdır. Həmişə olduğu kimi, ən sadə ehtimalla başlayın: Kompüterinizə qoşulmuş bir USB sürücüsünü tərk etdiniz.

USB Sürücülərin Ayrılması

Sisteminiz ilk yüklənə bilən cihaz olaraq USB sürücülərdən istifadə etmək üçün konfiqurasiya edilmişsə və sisteminizə qoşulmuş (birbaşa və ya sisteminizə qoşulmuş bir USB hubunda) açılmayan bir USB flash sürücüsünü tərk etsəniz, sisteminiz açılmayacaq. Həll? Sürücüyü ayırın və sisteminizi yenidən başladın.

Sisteminiz düzgün şəkildə yenidən başlasa, bir neçə seçiminiz var:

  • Kompüteri bağladığınız zaman USB flash sürücülərini sisteminizə qoşmayın.
  • USB sürücülərini önyüklenebilir cihazlar olaraq atlamaq üçün BIOS və ya UEFI firmware parametrlərinizi dəyişdirin.

Sürücü Boot Sifarişinin yoxlanılması və dəyişdirilməsi

Yükləmə qaydasını dəyişdirməlisiniz? Asılıdır. Getdikcə daha çox diaqnostik proqramlar önyüklenebilir USB flash sürücülərdən idarə oluna bilər və önyüklenebilir USB flash sürücülərdən yeni əməliyyat sistemləri də quraşdıra bilərsiniz. Bununla birlikdə, bu vəzifələr üçün sisteminiz və#8217s DVD və ya BD (Blu-ray) sürücünüzdən də istifadə edə bilərsiniz. Beləliklə, bu sizə aiddir.

Windows 7 kompüterlərində açılış əmrini dəyişdirməyi məsləhət görürük

  • Windows ReadyBoost xüsusiyyətindən istifadə edərək sisteminizi sürətləndirmək üçün USB flash sürücülərdən istifadə edirsiniz.
  • Kompüterlər arasında məlumat ötürmək üçün tez -tez USB flash sürücülərdən istifadə edirsiniz.
  • Digər səbəblərə görə tez -tez USB flash sürücülərdən istifadə edirsiniz.

Bununla birlikdə, USB flash sürücülərini açılış əmrinin yuxarı hissəsində buraxmalısınız

  • Diaqnostika proqramlarını tez -tez önyüklenebilir bir USB flash sürücüsündən çalıştırırsınız.
  • Əməliyyat sistemlərini önyüklenebilir bir USB flash sürücüsündən quraşdırırsınız.
  • Məlumat ötürülməsi üçün nadir hallarda və ya heç vaxt USB flash sürücülərdən istifadə etmirsiniz.

USB flash sürücüləri çıxarmaq və ya sistemin sabit diskinə yerləşdirmək üçün açılış əmrini dəyişdirsəniz, diaqnostika proqramlarını işə salmalı və ya yeni bir əməliyyat sistemi qurmalısınızsa, əvvəlcə USB sürücülərini yerləşdirmək üçün gələcəkdə hər zaman açılış əmrini dəyişə bilərsiniz.

Windows 7 -də açılış əmrini necə dəyişdirmək olar:

  1. Basın Başlamaq.
  2. Yanındakı sağ oxu vurun Söndür düymə.
  3. Seçin Yenidən başlamaq.

Sistem yenidən başladıqdan sonra BIOS və ya UEFI firmware quraşdırma proqramını başlatan düyməni basın (bax Şəkil 8.3).

Şəkil 8.3 Bu HP Pavilion DV6 noutbuku kimi bəzi sistemlərdə BIOS qurulması (F10) daxil olmaqla başlanğıc seçimlərini görmək üçün bir düyməyə (ESC) basmaq lazım ola bilər.

Sürücü yükləmə qaydasını təyin etmək üçün istifadə olunan dialoqa gedin (bax Şəkil 8.4).

Şəkil 8.4 Bu sistem ilk önyüklenebilir qurğular olaraq USB baş barmaq sürücülərini axtarır.

Windows 8.1 (Windows 8 -dən fərqli olaraq) CD və ya DVD təmir diskinin yaradılmasını dəstəkləmir, baxmayaraq ki, Windows 8.1 paylama mühitini təmir diski kimi istifadə edə bilərsiniz. Windows 8.1 ilə, sisteminiz USB sürücüsündən yükləməyi dəstəkləyirsə, bunun yerinə USB bərpa sürücüsü yaratmalısınız.

Başlanğıcda DUR (Mavi Ekran) Səhvləri

Windows kompüterinizi açarsanız və Windows giriş ekranını və ya masaüstünü görmək əvəzinə, Şəkil 8.5 -də göstərilənə bənzər bir ekran görürsünüzsə, “Mavi Ekran ” və ya BSOD olaraq da bilinən bir DURDUR səhviniz var. (“mavi ölüm ekranı) xətası. Nə olub?

Şəkil 8.5 Windows 7 -də BIOS (a) sistemindəki SATA interfeysi parametrinin dəyişdirilməsi nəticəsində yaranan 0x7B STOP xətası. Windows 8 fərqli bir STOP xətası göstərir (b).

Mavi ekran səhvləri bir çox problemdən qaynaqlana bilər. Başlanğıcda, ümumiyyətlə sabit disk cihazları sürücülərinin problemlərindən qaynaqlanır. Windows masaüstünü yüklədikdən sonra mavi ekran xətası görünsə, bunun səbəbi pozulmuş tətbiqlər, pozulmuş cihaz sürücüləri və ya yaddaş problemləri ola bilər.

BSOD xətası gördüyünüzdə, STOP mesajından sonra göstərilən nömrələri yazdığınızdan əmin olun, məsələn STOP: 0x0000001E və ya qısaca 0x1E. KMODE_EXCEPTION_NOT_HANDLED kimi xətanın adı göstərilirsə, onu da qeyd edin. Daha sonra Microsoftun təklif etdiyi həll yollarını tapmaq üçün Microsoft Dəstək Saytında (http://support.microsoft.com) səhv nömrəsinə və adına baxa bilərsiniz.

Cədvəl 8.2 ən çox yayılmış STOP səhvlərindən və mümkün həll yollarından bəhs edir.

Cədvəl 8.2 Ümumi Windows STOP səhvləri və həlləri

STOP Hata Nömrəsi

STOP Xəta Adı

Təklif olunan həllər

Yedəkləmə və ya antivirus proqramlarında istifadə olunan cihaz sürücülərini və ya xidmətlərini yoxlayın.

Yedəkləmə və ya antivirus proqramlarında istifadə olunan cihaz sürücülərini və ya xidmətlərini yoxlayın.

Qeyri -qanuni və ya naməlum təlimat, səhv mesajında ​​göstərilən sürücünü yoxlayın.

Sabit diski səhvlərə görə yoxlayın.

Test yaddaş modulları sistem BIOS -da yaddaş önbelleğini aradan qaldırır, hardware konfiqurasiyasını yoxlayın.

Səhv və ya çatışmayan sabit disk sürücüsü ətraflı məlumat üçün bu bölmədə “ 0x7B Səhvlərinin Düzəldilməsi və#8221 bölməsinə baxın.

Təchizat və RAM -ı yoxlayın SCSI konfiqurasiyasını istifadə edin, CPU -nun aşılmadığından əmin olun.

Güc idarəetməsini və CD yazma proqramını yoxlayın, güc idarəetməsini müvəqqəti olaraq yenidən yazın və ya CD yazma proqramını təkmilləşdirin.

Üçüncü tərəf proqramlarını yenidən qurun, sistem fayllarını yoxlamaq üçün Scannow (SFC/Scannow) seçimi ilə Sistem Dosyası Denetleyicisini istifadə edin.

Təəssüf ki, Windows ümumiyyətlə bir STOP xətası görünəndə sistemi dərhal yenidən başlatmaq üçün konfiqurasiya olunur, buna görə də onu oxuya bilməzsiniz. Windows-u bir STOP səhvinin ekranda qalması üçün konfiqurasiya etmək üçün bunun nə olduğunu müəyyən edə və həll yollarını axtara bilərsiniz, bax “ Daha asan problemlərin həlli üçün Windows əsaslı bir kompüter və ya planşet hazırlamaq, ” Fəsil 1, s.37.

Uğursuzluqdan sonra Avtomatik Yenidən Başlatmağı və ya Sistem Arızasında Avtomatik Yenidən Başlatmağı Deaktiv etmək üçün bir başlanğıc seçimi ilə bir STOP xətası halında yenidən başlamağı deaktiv edə bilərsiniz. Bax “Sistem Arızasında Avtomatik Yenidən Başlatmağı Deaktiv Edin, ” bu bölmə, s.222.

Başlanğıcda 0x7B səhvlərinin düzəldilməsi

Bir kompüter qurursanız, yeni bir sabit diskə yüksəltmisinizsə və ya sistem parametrlərini qoruyan anakartın batareyasını yenicə dəyişdirmiş olsanız, kompüterinizin sabit diskin düzgün konfiqurasiya parametrlərinə malik olması mümkündür.

Demək olar ki, bütün sabit disklər sabit disk növü olaraq Auto istifadə edərək qurulmuşdur. Beləliklə, quraşdırma məlumatları itirildikdə, standart (normal) parametr Avtomatikdir və sürücü düzgün aşkarlanacaq.

Bununla birlikdə, sabit diskinizin istifadə etdiyi SATA interfeysi ayarı problem ola bilər. SATA interfeysi üçün bir neçə mümkün parametr var (IDE, AHCI və RAID) və əgər sisteminiz bir parametrdən istifadə edilərək konfiqurasiya olunsa, lakin sistem BIOS və ya UEFI firmware -də fərqli bir parametr istifadə olunarsa, kompüteriniz açılmayacaq. 0x7B STOP xətası (Şəkil 8.5 -ə baxın).

Doğru ayarı bilirsinizsə, bu addımları izləyin:

  1. Kompüteri söndürün və yenidən başladın.
  2. BIOS və ya UEFI firmware quraşdırma proqramını başladın.
  3. SATA parametrini düzgün dəyərə dəyişdirin.
  4. Ayarları qeyd edin və kompüteri yenidən başladın.
  5. İstənirsə Windows'u Normal Başlat seçin.

3 -cü addımda istifadə etmək üçün düzgün ayarı bilmirsinizsə, sistem AHCI olaraq təyin olunarsa IDE (ATA və ya Uyğun olaraq da bilinir) və ya sistem IDE, ATA və ya Uyğun olaraq qurulubsa AHCI seçin.

Windows 7 və Windows 8.x -də AHCI rejiminə keçid

SATA sürücüləriniz hazırda IDE rejimində işləməyə qurulubsa, ancaq bir SSD quraşdırmağı planlaşdırırsınızsa, unutmayın ki, AHCI rejimindən istifadə etməyincə bir SSD daha sürətli performans təmin edə bilməz. SATA rejimlərini dəyişdirdiyiniz zaman sistem çökərsə, necə təhlükəsiz şəkildə IDE -dən AHCI rejiminə keçə bilərsiniz?

SATA 3Gbps və 6Gbps sabit disk sürücülərində tam performans üçün AHCI rejimi də tövsiyə olunur.

Keçid etməzdən əvvəl, Windows -un AHCI sürücülərini lazım olduqda istifadə etməsini təmin etməlisiniz.

Windows Vista və Windows 7 üçün ən asan yol, http://support.microsoft.com/kb/922976 ünvanında mövcud olan Fix-It sehrbazından istifadə etməkdir. Bu səhifə, Fix-It Sihirbazı ilə eyni dəyişiklikləri edən əl ilə Registry dəyişikliklərini də izah edir.

Fix-It Sihirbazını işə saldıqdan və ya lazımi dəyişiklikləri əl ilə etdikdən sonra, sistem BIOS və ya UEFI firmware quraşdırma dialoqunda AHCI rejimini etibarlı şəkildə aktivləşdirə bilərsiniz (Şəkil 8.8-ə baxın) və sisteminiz müvafiq sürücüləri quraşdıracaq və düzgün işləyəcək.

Windows 8.x-də IDE rejimindən AHCI rejiminə keçmək üçün bu proseduru izləyin (http://superuser.com/questions/471102/change-from-ide-to-ahci-after-installing-windows-8) :

Boş yerə vurun Təhlükəsiz Boot qutu (bax Şəkil 8.6).

Şəkil 8.6 Tamam'ı tıklamadan əvvəl Təhlükəsiz Yükləmənin yoxlanıldığından əmin olun.

Basın və ya vurun İndi yenidən başladın (bax Şəkil 8.7).

Şəkil 8.7 İndi Yenidən Başlat, firmware (BIOS/UEFI) parametrlərini dəyişdirməyə imkan verir.

SATA rejimini AHCI olaraq dəyişdirin (bax Şəkil 8.8).

Şəkil 8.8 IDE rejimi üçün konfiqurasiya edilmiş sistemi AHCI rejiminə dəyişməyə hazırlaşır.

SATA cihazlarınızın tam işləməsi üçün kompüteriniz AHCI rejimindən istifadə edərək yenidən başlayacaq.

Sərbəst Sürücü Məlumatları və Güc Kabelləri

Masaüstü kompüterin daxili hissəsi dağınıq bir yerdir. Sisteminizi yaddaş təkmilləşdirmə, komponent dəyişdirmə və ya başlıq altında nə olduğunu görmək üçün açmış olsanız da, sabit diskə və ya verilənlərə gedən güc və ya məlumat kabellərini gevşetmiş və ya ayırmış ola bilərsiniz. sabit diski anakarta bağlayan kabel. Sisteminizdə (C :) sürücüsündə kabellər ayrılıbsa və ya boşaldılıbsa, Əməliyyat Sistemi yoxdur və ya digər oxşar səhv mesajlarını görəcəksiniz.

SATA məlumat kabellərinin çoxu yerində kilidlənmir, buna görə də sürücüdə (bax Şəkil 8.9) və ya anakartda boş bir kabelin olması çox asandır (bax Şəkil 8.10 və 8.11).

Şəkil 8.9 SATA sabit diskində boş məlumat kabeli.

Şəkil 8.10 Boş məlumat kabeli olan SATA anakart ana adapteri.

Şəkil 8.11 Bəzi anakartlar, eyni zamanda boş bir məlumat kabelinə sahib olan bu kimi önə quraşdırılmış SATA portlarından istifadə edir.

Eynilə, SATA elektrik kabelləri sürücülərdən çıxa bilər (bax Şəkil 8.12).

Şəkil 8.12 Bu SATA sürücüsündəki elektrik kabeli sıx bağlı deyil.

Boş və ya kəsilmiş kabellərlə bağlı problemləri həll etmək üçün:

  1. Kompüteri söndürün.
  2. Enerji təchizatını AC gücündən ayırın.
  3. Sistemi açın.
  4. Sərt diskdə və ya SSD -də boş və ya ayrılmış kabel (lər) olub olmadığını yoxlayın.
  5. Anakartda boş və ya ayrılmış SATA məlumat kabelləri olub olmadığını yoxlayın.

Kabel (lər) ini möhkəm bağlayın (bax Şəkil 8.13, 8.14 və 8.15).

Şəkil 8.13 Güc və məlumat kabelləri düzgün bağlanmış SATA sabit diski.

Şəkil 8.14 Düzgün quraşdırılmış SATA məlumat kabeli yuxarıya baxan anakart portuna qoşulmuşdur.

Şəkil 8.15 Düzgün quraşdırılmış SATA məlumat kabeli, ön tərəfdəki anakart portuna qoşulmuşdur.

Sürücü Arızası

Sabit diskiniz işləyərkən yüksək və ya gurultulu səs çıxarırsa, yəqin ki, uğursuz olub. Sabit disk düşdükdə və ya sərt şəkildə vurulduqda, bir uğursuzluq ehtimalı yüksəkdir.

Ancaq qulağınızı yanınıza qoysanız və ya sistem bir neçə dəqiqə işlədikdən sonra isinməsə belə tamamilə səssiz olarsa, sabit disk uğursuz ola bilər.

Sabit diskin uğursuz olduğunu düşünməzdən əvvəl, problemin sabit diskdə, elektrik kabelində və ya məlumat kabelində olub olmadığını müəyyən etmək üçün bu izolyasiya testini aparın:

  1. Kompüteri söndürün.
  2. Enerji təchizatını AC gücündən ayırın.
  3. Sistemi açın.
  4. Sabit disk ilə enerji təchizatı arasında işləyən elektrik kabelini tapın.
  5. Elektrik kabelini enerji təchizatından ayırın.
  6. Sürücüyə enerji vermək üçün elektrik kabeli bir ayırıcı və ya çeviricidən istifadə edərsə, sürücünü birbaşa enerji təchizatına qoşun (mümkünsə). Bu mümkün deyilsə, ayırıcıyı və ya çeviricini dəyişdirin və elektrik təchizatı ucuna və sürücüyə etibarlı şəkildə qoşulduğundan əmin olun.
  7. Elektrik təchizatı AC gücünə yenidən qoşun.
  8. Kompüteri yenidən başladın.
  9. Sürücü hələ də işləmirsə, 1 və 2 -ci addımları təkrarlayın.
  10. Sürücüyü orijinal elektrik kabelinə (və ayırıcıya və ya çeviriciyə) yenidən qoşun.
  11. Məlumat kabelini sabit disk sürücüsündən və kompüterdən çıxarın.
  12. Bilinən işləyən dəyişdirmə kabelini quraşdırın.
  13. Anakartdakı SATA portuna qoşun və sürün.
  14. 7 və 8 -ci addımları təkrarlayın.
  15. Sürücü hələ də işləmirsə, sürücü uğursuz oldu. Əvəz edin.

Məlumatlarınızın ehtiyat nüsxəsini çıxarmısınızsa, sabit diskinizi dəyişdirə və sisteminizi ehtiyat nüsxədən bərpa edə bilərsiniz. Ancaq heç bir ehtiyat nüsxəniz yoxdursa və məlumat çox vacibdirsə, məlumatlarınızı bərpa etmək üçün bir məlumat bərpa şirkətindən istifadə edə bilərsiniz. Bu şirkətlərin uğursuz komponentlərin təhlükəsiz şəkildə dəyişdirilməsini və qabaqcıl məlumat çıxarma texnikasını təmin edən təmiz otaqları var. Sürücünün vəziyyəti buna icazə verərsə, bərpa üçün yüzlərlə dollar ödəməyi gözləyin.


Sadəcə eyni problemlə üzləşdim və kök səbəbini tapdım: C_INCLUDE_PATH mühit dəyişicisi. Mənimki belə quruldu:

Bu kimi bir şey edən bir yerdə bir giriş skriptindən gəldi

mühitimi qurarkən. Təəssüf ki, ilk baxışdan düzgün görünür, belə görünür: foo: foo -ya bərabərdir. bu kontekstdə-yəni iki bənddən ibarət ayrılmış siyahıdakı boş simli, dolayısıyla eyni şəkildə işlənmiş kimi görünür. . Cari qovluğu sistemə təsirli şəkildə əlavə edən yol, #include & ltpoll.h & gt -nin "poll.h" ilə eyni şeyi etməsini təmin edir, bu da pisdir.

Perl vəziyyətində, yaramaz yol Perl -in poll.h -nin /usr/include/poll.h yerinə özünü daxil etməsinə səbəb olur. Perlin poll.h birdən çox daxil edilməsinə qarşı bir mühafizəçi olduğundan, ikincisi səssizcə heç bir şey etməz və heç bir poll.h ilə nəticələnmir, bu da ikimizin də gördüyümüz tərtibçi səhvinə səbəb olur. Bu da yamanızın niyə problemi aradan qaldırdığını izah edir: tikinti qovluğunda ./sys/poll.h yoxdur, buna görə də tərtibçi /usr/include/sys/poll.h taparaq sonda nə olacaq Sən istədin.

Mənim həllim C_INCLUDE_PATH -də küçə bağırsağından qurtulmaq idi. Mənim vəziyyətimdə, səhv bir şəkildə təyin edən skript tapdım və əvvəlki C_INCLUDE_PATH -in boş olduğunu aydın şəkildə yoxlayacaq şəkildə düzəltdim və bu vəziyyətdə iki nöqtə əlavə etmədim. Əlbəttə ki, birdəfəlik düzəliş olaraq Perl qurmadan əvvəl C_INCLUDE_PATH =/home/me/REDACTED/include ixracını əl ilə işlədə bilərdim və ya sadəcə C_INCLUDE_PATH-ı təyin edə bilərdim.


() alt qovluqdakı əmrləri yerinə yetirir, buna görə çıxmaqla alt qabıqdan çıxırsınız və ana qabığa qayıdırsınız. Mövcud qabıqda əmrləri yerinə yetirmək istəyirsinizsə <> aşırma istifadə edin.

(siyahı) siyahı bir alt qabıq mühitində icra edilir. Qabığın mühitini təsir edən dəyişən təyinatlar və daxili əmrlər, əmr tamamlandıqdan sonra qüvvədə qalmır. Geri dönüş statusu, siyahının çıxış vəziyyətidir.

siyahısı sadəcə cari qabıq mühitində icra olunur. siyahı yeni sətir və ya nöqtəli vergüllə sonlandırılmalıdır. Bu qrup əmri olaraq bilinir. Geri dönüş statusu, siyahının çıxış vəziyyətidir. Qeyd edək ki, (və) metakarakterlərindən fərqli olaraq, ayrılmış sözlərdir və ayrılmış sözün tanınmasına icazə verildikdə baş verməlidir. Söz kəsilməsinə səbəb olmadıqları üçün siyahıdan boşluq və ya başqa bir qabıq metakarakteri ilə ayrılmalıdırlar.

Qeyd etmək lazımdır ki, qabıq sintaksisi olduqca ardıcıldır və alt təbəqə əmr dəyişdirmə (həmçinin köhnə üslubda ".." sintaksisi ilə) və ya prosesin dəyişdirilməsi kimi digər () quruluşlarda da iştirak edir, buna görə də aşağıdakılar cari qabıq ya:

Əmrlər açıq şəkildə () içərisinə yerləşdirildikdə alt qabıqların iştirak etdiyi açıq olsa da, daha az görünən fakt onların digər strukturlarda da əmələ gəlməsidir:

komanda arxa planda başladı

cari qabıqdan çıxmır, çünki (man bashdan sonra)

Bir əmr nəzarət operatoru və amp tərəfindən ləğv edilərsə, qabıq arxa planda bir alt qovluqda əmri icra edir. Qabıq əmrin bitməsini gözləmir və qaytarılma vəziyyəti 0 -dır.

hələ də yalnız alt hissədən çıxır.

Ancaq fərqli qabıqlar bu baxımdan fərqli davranırlar. Məsələn, bash, boru kəmərinin bütün komponentlərini ayrı alt qovluqlara qoyur (iş nəzarətinin aktiv olmadığı çağırışlarda lastpipe seçimindən istifadə etməsəniz), ancaq AT & ampT ksh və zsh son hissəni cari qabığın içərisində işə salır (hər iki davranışa POSIX tərəfindən icazə verilir) . Beləliklə

bash -da əsasən heç nə etmir, ancaq zsh -dən çıxır sonuncu çıxmaq.

coproc exit də bir alt qovluqda çıxış edir.

Çıxışı bir alt qovluqda icra etmək bir tələdir:

Ssenari 42 yazır, alt təbəqə qayıtma kodu 1 və skriptlə davam edir. Zəngi hətta echo ilə əvəz etmək $ (CALC) || exit 1 kömək etmir, çünki echonun geri qaytarma kodu 0 -un qaytarılma kodundan asılı olmayaraq 0 -dır. Və calc yankıdan əvvəl icra olunur.

Aşağıdakı skriptdə olduğu kimi, yerli quruluşa bükərək çıxmağın təsirini daha da təəccübləndirən haldır. Bir giriş dəyərini yoxlamaq üçün bir funksiya yazanda problemə rast gəldim. Misal:

Bu gün üçün "year month day.log", yəni 20141211.log adlı bir fayl yaratmaq istəyirəm. Tarix ağlabatan bir dəyər verə bilməyən bir istifadəçi tərəfindən daxil edilir. Buna görə, fname funksiyamda istifadəçi girişinin etibarlılığını yoxlamaq üçün tarixin qaytarılma dəyərini yoxlayıram:

Yaxşı görünür. Qoy ssenariyə s.sh adı verilsin. İstifadəçi skripti ./s.sh "Per 11 Dekabr 20:45:49 CET 2014" ilə çağırarsa, 20141211.log faylı yaradılır. Bununla birlikdə, istifadəçi ./s.sh "Thu hec 11 20:45:49 CET 2014" yazarsa, o zaman skript çıxış edir:

Fname… sətri, pis giriş məlumatlarının alt qəfəsdə aşkarlandığını bildirir. Ancaq yerli… xəttinin sonunda 1 çıxışı heç vaxt tətiklənmir, çünki yerli direktiv həmişə 0 qaytarır. Bunun səbəbi yerli icra edildiyidir sonra $ (fname) və beləliklə, qaytarma kodunun üzərinə yazır. Və buna görə də skript davam edir və boş bir parametrlə əlaqə yaradır. Bu nümunə sadədir, amma bash davranışı real tətbiqdə olduqca qarışıq ola bilər. Bilirəm, real proqramçılar yerli sakinlərdən istifadə etmirlər.☺

Aydınlaşdırmaq üçün: Yerli olmadan, etibarsız bir tarix daxil edildikdə skript gözlənildiyi kimi ləğv edir.

Düzəliş xətti bölməkdir

Qəribə davranış bash man səhifəsindəki local sənədlərinə uyğundur: "Yerli funksiyadan kənarda istifadə edilmədikdə, etibarsız bir ad verilmədikdə və ya ad yalnız oxunan bir dəyişən olmadıqda, qaytarılma statusu 0 -dır."

Bir səhv olmasa da, bash davranışının ziddiyyətli olduğunu hiss edirəm. İcra ardıcıllığından xəbərdaram, buna baxmayaraq yerli bir pozulmuş tapşırığı maskalamamalıdır.

İlk cavabımda bəzi qeyri -dəqiqliklər var idi. Mikeserv ilə açıq və dərin bir müzakirədən sonra (bunun üçün təşəkkür edirəm) onları düzəltmək üçün getdim.


Syslogda gigabayt səhvlərin nədən ibarət olduğunu bilmirəm

Düşünürəm ki, səhv VLC -dən qaynaqlanır. Başqa bir Media Player istifadə etməyə çalışın.

/.local/share/sddm/xorg-session.log -& gt 77G -& gt vdpau_chroma süzgəc xətası: video qarışdırıcıda nasazlıqlar var: Yanlış tutacaq dəyəri verildi. -& gt VLC + nvidia sürücüləri buna səbəb olur. & ndash karpi 13 '20 Yanvar 11:20

Bu böyük/var/log/syslog üçün başqa bir istifadəçiyə keçdikdə videonun oynatılması/durdurulması üçün bir səhv var, gigabayt səhv qeydləri yaradır. Hata təsvirində, bir video pleyerdən (məsələn, VLC) istifadə etmənin xətanı aradan qaldırmağın bir yolu olduğu qeyd olunur. VLC -nin səhv istehsal edən yeganə oyunçu olub olmadığı aydın deyil.

Səhv həll olunmadı. Ancaq çıxışı dayandırmağın bir yolu olaraq VLC -ni bağlamaq görünür. Hata mövzusundakı mesajlara və öz təcrübəmə görə, istifadəçiləri və bəlkə də iş sahələrini dəyişdirərkən video oynatmaqdan çəkinmək, problemin görünməsinin qarşısını almalıdır. Nyxee -nin cavabı əlaqəli bir həlldir.

& quotPaul_Pedant, googledəm amma faydalı bir şey tapa bilmədim & quot.

Mən googled & quotorg.gnome.Nautilus [1514]: [00007fa4fc465ce0] vdpau_chroma filtr xətası: video qarışdırıcıda uğursuzluqlar var: Etibarsız bir sap dəyəri təmin edildi & quot və dörd faydalı yazı atıldı.

Onlardan ikisi & quotin keçərsiz idarəetmə dəyəri & quot haqqında, digər ikisi & quotAssertionMessage: *** 'nautilus'dakı səhv: free (): etibarsız göstərici: 0x0993d258 *** & quot; Bunlar, ehtimal ki, eyni kök səbəbdir, çünki free () işarəsi də sadəcə bir sapdır. Nautilus öz yaddaşını pozursa, nə lazımsız şeylərin çıxdığını söyləmək olmaz.

Başqa bir istifadəçiyə keçdikdə videonun oxunması/dayandırılması gigabaytlıq səhv qeydləri yaradır. & quotin keçərsiz sap dəyəri & quot haqqında syslog mesajları

nautilus uğursuzluq iddiası: *** "nautilus" da səhv: pulsuz (): etibarsız göstərici: 0x00007fc7ec3a8800 ***

nautilus uğursuzluq iddiası: *** "nautilus" da səhv: pulsuz (): etibarsız göstərici: 0x0993d258 ***

Nvidia sürücü giriş səhvlərini aradan qaldırın

Bəlkə də ətraflı suallarıma cavab verməli, ya da Nautilus -u silməli və yenidən qurmalı və ya versiyalarınızı bu səhv hesabatlarına qarşı yoxlamalı və ya bu saytlardan birində bir səhv yazmalısınız. Pop-os, Nautilus, Ubuntu, nvidia və ya problemim yoxdur, buna görə bunu daha ətraflı araşdıra bilmərəm.


Visual Studio 2015 -də IIS Express Web server xətası işə salınmadı - Necə düzəldilir

Windows 10 kimi Windows -un son versiyalarında Visual Studio ilə işləmək çətin ola bilər, çünki yeni OS -nin təkmilləşdirilmiş təhlükəsizlik parametrləri tez -tez bəzi sistem fayllarına daxil olması lazım olan bir geliştirici maşında bəzi problemlər yarada bilər - xüsusən də IIS ilə işləyərkən. Ekspress. Bu barədə bir neçə yazıda danışdıq, məsələn burada (IIS Metabase -ə daxil olma xətası), burada (uzaq maşınlardan xarici istəklərə icazə verin) və burada (ID #### xətası ilə proses).

Bir ASP.NET Core və ya MVC həlli ilə işləyərkən, hata ayıklama rejimində icra etməyə çalışdıqdan dərhal sonra qarşılaşa biləcəyiniz başqa bir problemi təqdim edəcəyik:

IIS Express Web serverini işə salmaq olmur

Bu problemi həll edə biləcək bir çox həll yolu var: Onları bir -birinin ardınca sınamağı təklif edirik, yalnız onu həll edə bilsəniz dayandırın.

  1. Silin Sənədlər IISExpress aşağıdakı konsol əmrindən istifadə edərək qovluq: rmdir / s / q "%userprofile% Documents IISExpress "
  2. Silin applicationhost.config daxilində yerləşdirilən fayl .vs Yapılandır qovluğunu Visual Studio layihənizin kök qovluğunda yerləşdirin.
  3. Visual Studio'yu bağlayın və İnzibati imtiyazlarla yenidən başladın (sağ basın & gt Administrator olaraq işləyin).
  4. Layihənin veb saytının təsadüfi URL'sini dəyişdirin: Visual Studio daxilində, sağ basın layihə qovşağına Solution Explorerseçin, sonra Xüsusiyyətləri seçin Veb paneldəki nömrəni dəyişdirin Layihə URL mətn qutusu dəyəri.
  5. Aşağıdakı ekran görüntüsündə göstərildiyi kimi 1 dəyəri ilə _CSRUN_DISABLE_WORKAROUNDS Ətraf Mühit Sistemi dəyişənini əlavə edin (Juan M. Elosegui bu SO mövzusunda və görüntü üçün bunu bildirdiyi üçün):

Problemi həll edə bilsəniz, bu yazının şərh hissəsində bir rəy buraxaraq bu həll yollarından hansının sizin üçün işlədiyini bizə bildirin.

Hələlik budur: xoşbəxt kodlaşdırma!

Əlaqəli Yazılar

Baxış Köməkçisi-Visual Studio üçün Peer kodu nəzərdən keçirmə vasitəsi, Visual Studio üçün istifadəçi interfeysi daxilində araşdırma sorğuları yaratmaq və onlara cavab vermək üçün faydalı bir kod nəzərdən keçirmə plagini təqdim edir.

14 dekabr 2019 7 yanvar 2021

Mənbə Nəzarət Dəyişdiricisi - Visual Studio Uzantısı Mənbə Nəzarət Təchizatçısını, mövcud Visual Studio layihəsi tərəfindən istifadə edilənə görə avtomatik olaraq təyin edən yüngül bir Visual Studio Uzantısıdır.

5 oktyabr 2019 10 oktyabr 2019

Visual Studio - FTP serverləri ilə ünsiyyət qurmaq üçün komponentlər quraşdırılmadı Xəta - Necə düzəldilir

15 noyabr 2017 7 yanvar 2021

Rayan haqqında

IT Layihə Meneceri, Veb İnterfeysi Memarı və İtaliyada və Avropada yerləşdirilən bir çox yüksək trafikli web saytları və amp xidmətləri üçün Baş Geliştirici. 2010 -cu ildən bəri bir çox italyan şirkətləri üçün Android, iOS və Windows Phone mobil cihazları üçün bir çox Tətbiq və oyun üçün aparıcı dizaynerdir. 2018 -ci ildən bəri İnkişaf Texnologiyaları üçün Microsoft MVP.

"Visual Studio 2015 -də IIS Express Web server səhvini başlatmaq mümkün deyil - Necə düzəldilir" mövzusunda 15 şərh

İnzibati imtiyazlarla vizual studiyanı yenidən işə saldı və işlədi

Yuxarıdakı həll mükəmməl işləyir, təşəkkürlər :)

Çox sağ olun, tapdığım bütün digər mövzular kömək etmədi. Yenidən sınamadan əvvəl 1-4 addımlarını tamamladım. Hansının hiylə işlədiyindən əmin deyiləm, amma çalışıram.


Müasir bir Ubuntu sistemində (və bir çox digər GNU/Linux paylamalarında), zədələnmiş sudoers faylını düzəltmək əslində olduqca asandır və yenidən başlamağı, canlı CD istifadə etməyi və ya maşına fiziki girişi tələb etmir.

Bunu SSH vasitəsi ilə etmək üçün maşına daxil olun və pkexec visudo əmrini yerinə yetirin. Maşına fiziki girişiniz varsa, SSH lazım deyil, yalnız bir Terminal pəncərəsini açın və bu pkexec əmrini işlədin.

Sənin (və ya başqa bir istifadəçinin) PolicyKit ilə proqramları kök olaraq idarə etməyə icazə verildiyini güman etsən, parolunu daxil edə bilərsən, sonra visudo kök olaraq işləyəcək və /etc /sudoers -i düzəldə bilərsən.

/Etc/sudoers.d -də konfiqurasiya fayllarından birini redaktə etmək lazımdırsa (bu vəziyyətdə nadirdir, lakin mümkündür), pkexec visudo -f /etc/sudoers.d/ istifadə edinfayl adı .

Problemi həll etmək üçün kök olaraq əlavə sistem idarəetmə əmrlərini yerinə yetirməli olduğunuz əlaqəli bir vəziyyətiniz varsa (bu vəziyyətdə də nadirdir, amma başqalarında yaygındır), pkexec bash ilə interaktiv bir kök qabığına başlaya bilərsiniz. Ümumiyyətlə, sudo ilə işləyəcəyiniz hər hansı bir qrafik olmayan əmr yerinə pkexec ilə işlədilə bilər.

(Sistemdə PolicyKit ilə kök kimi proqramları işə salmağa icazə verilən birdən çox istifadəçi hesabı varsa, o zaman bu hərəkətlərdən hər hansı biri üçün parolunuzu soruşmadan əvvəl hansını istifadə etmək istədiyinizi seçməyiniz xahiş olunur.)

Bu işə yaramırsa-məsələn, PolicyKit vasitəsilə proqramları kök kimi idarə etməyə icazə verilən istifadəçilər yoxdursa-Ubuntu canlı CD-dən yükləyin (ehtimal ki, Ubuntu qurmaq üçün istifadə etdiyiniz CD kimi) və fayl sistemini quraşdırılmış sistem. Bölmələrinizi görmək üçün sudo parted -l çalıştıraraq bunu edə bilərsiniz-ehtimal ki, yalnız bir ext4 bölməsi var və bu kök fayl sistemidir.

Tutaq ki, quraşdırılmış Ubuntu sisteminin kök fayl sistemi /dev /sda1 üzərindədir. Sonra sudo mount /dev /sda1 /mnt ilə bağlaya bilərsiniz. Sonra quraşdırılmış sistemin sudoers faylını sudo nano -w/mnt/etc/sudoers ilə düzəldə bilərsiniz. Və ya daha da yaxşısı, onu redaktə edə bilərsiniz

(səhv sintaksisi olan bir sudoers faylını saxlamağınıza mane olacaq).


6 Cavablar 6

Düz başa düşdün. Paranoyak olun. Öz kodunuz olsa belə, başqa koda etibar etməyin. Hər şeyi unudursan, dəyişiklik edərsən, kod inkişaf edər. Xarici koda etibar etməyin.

Yuxarıda yaxşı bir fikir söylənildi: girişlər etibarsız olsa da proqram çökməsə nə olar? Sonra verilənlər bazasında zibil və xətada xətalar alırsınız.

Bir nömrə istədikdə (məsələn, dollarla qiymət və ya vahidlərin sayı) "1e9" yazıb kodun nə etdiyini görmək istəyirəm. Ola bilər.

Dörd il əvvəl B.S. U.C.Berkeley -dən Kompüter Elmləri mövzusunda, yaxşı bir proqramın% 50 səhv idarə etməsi olduğunu söylədik. Paranoyak olun.

Onsuz da düzgün fikir var

Səhv girişi idarə etmək üçün iki yanaşmadan hansını məsləhət görərdiniz?

Uyğun olmayan giriş -> heç bir hərəkət + bildiriş

Uyğun olmayan giriş -> düzgün idarə olunan hərəkət

Proqramlaşdırmaya həqiqətən bir çerez kəsici yanaşma edə bilməzsiniz (edə bilərsiniz), amma hər şeyi şüurlu seçimdən çox vərdişdən kənar edən bir formulalı dizaynla nəticələnərdiniz.

Praqmatizmlə təmkinli dogmatizm.

Steve McConnell ən yaxşı olduğunu söylədi

Steve McConnell, müdafiə proqramlaşdırması haqqında çox kitab yazdı (Kod Tamamlandı) və bu, hər zaman girişlərinizi təsdiq etməyinizi tövsiyə etdiyi üsullardan biri idi.

Stevein bunu xatırladığını xatırlamıram, amma bunu etmək üçün düşünməlisiniz qeyri-şəxsi metodlar və funksiyalar və yalnız zəruri hesab edilən digərləri.

Xüsusilə dili, kodun növünü və kodun daxil ola biləcəyi məhsul növünü göstərmədən burada "düzgün" cavab yoxdur. Düşünün:

Dil önəmlidir. Objective-C-də, heç bir şey olmadığı üçün mesaj göndərmək çox vaxt normaldır, amma proqram da çökmür. Java -da açıq göstəricilər yoxdur, buna görə sıfır göstəricilər orada böyük bir narahatlıq yaratmır. C -də bir az daha diqqətli olmalısan.

Paranoid olmaq ağılsız, yersiz şübhə və ya etibarsızlıqdır. Yəqin ki, proqram təminatı üçün insanlar üçün olduğundan daha yaxşı deyil.

Sizin narahatlıq səviyyəniz koddakı risk səviyyəsinə və ortaya çıxan hər hansı bir problemi müəyyənləşdirməyin çətinliyinə uyğun olmalıdır. Ən pis halda nə olur? İstifadəçi proqramı yenidən başlatır və qaldığı yerdə davam edir? Şirkət milyonlarla dollar itirir?

Həmişə pis girişi təyin edə bilməzsiniz. Göstəricilərinizi dini olaraq sıfırla müqayisə edə bilərsiniz, ancaq bu yalnız tutur bir 2^32 mümkün dəyərdən, hamısı pisdir.

Səhvlərlə məşğul olmaq üçün bir çox fərqli mexanizm var. Yenə də müəyyən dərəcədə dildən asılıdır. Təsdiq makrolarından, şərti ifadələrdən, vahid testlərindən, istisnalardan istifadə etmədən, diqqətli dizayndan və digər üsullardan istifadə edə bilərsiniz. Onlardan heç biri qüsursuz deyil və heç biri hər vəziyyətə uyğun deyil.

Beləliklə, əsasən məsuliyyət götürmək istədiyiniz yerə qaynaqlanır. Başqalarının istifadə etməsi üçün bir kitabxana yazırsınızsa, ehtimal ki, əldə etdiyiniz məlumatlar haqqında mümkün qədər diqqətli olmaq və mümkün olduqda faydalı səhvlər buraxmaq üçün əlinizdən gələni etmək istəyirsiniz. In your own private functions and methods, you might use asserts to catch silly mistakes but otherwise put responsibility on the caller (that's you) to not pass garbage in.

There should definitely be a notification, such as a thrown exception. It serves as a heads up to other coders who may be misusing code you wrote (trying to use it for something it wasn't intended to do) that their input is invalid or results in errors. This is very useful in tracking down errors, whereas if you simply return null, their code will continue along until they try to use the result and get an exception from different code.

If your code encounters an error during a call to some other code (perhaps a failed database update) which is beyond the scope of that particular piece of code, you really have no control over it and your only recourse is to throw an exception explaining what you know (only what you are told by the code you've called). If you know that certain inputs will inevitably lead to such a result, you can just not bother executing your code and throw an exception stating which input is not valid and why.

On a more end-user related note, it is best to return something descriptive yet simple so that anyone can understand it. If your client calls and says "the program crashed, fix it", you have a lot of work on your hands tracking down what went wrong and why, and hoping you can reproduce the problem. Using proper handling of exceptions can not only prevent a crash, but provide valuable information. A call from a client saying "The program is giving me an error. It says 'X Y Z is not valid input for method M, because Z is too large", or some such thing, even if they have no idea what it means, you know exactly where to look. Additionally, depending on your/your company's business practices, it might not even be you fixing these problems, so it is best to leave them a good map.