|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 - 3 - 4 | Next > |
|
|
[ruby-list:46253] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果:ruby-list:46252とみたさん
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] で、正しくなることを確認しました。 最新に上げたら、確認することが大事ですね。 ありがとうございました。 windows版バイナリは、 http://www.garbagecollect.jp/ruby/mswin32/ja/download/release.html から、ダウンロードできるのがわかりました。 > とみたです。 > > 結果は、 > > > > "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"は、ruby1.8.7 > > でも > > 5となりました。 > 最新の 1.8.7-p174 で試すと 2 となります。 > -- > とみたまさひろ <tommy@...> |
|
|
[ruby-list:46257] MySQL/Ruby segmentation fault前川です。
mysqlのテーブル情報を取り出そうとしましたが、 出力の途中で、segmentation fault が生じます。 それぞれを単独で動作させる場合は、正常に取り出せます。 mysql関連は、ruby for apacheにあるmysql.soで、 http://rubyforge.org/projects/rubyforapache/ にありました、July 18,2005 の日付ものです。 O/Sは、wondows-xp Pro ver 2002 SP3 です。 教えていただきたい点は、 1.c コマンドでデバッガを実行したときに、 c:/ruby/lib/ruby/1.8/rational.rb:78: `undefined method `gcd' となってい ますが、 segmentation fault とは、関係ないでしょうか? 2.s コマンドでデバッガを実行すると、途中、 "ruby lib version (1.8.7) doesn't match executable version (#{RUBY_VERSION})" がでていますが、segmentation fault と関係ないでしょうか? 3.segmentation faultが発生する原因は、何でしょうか? デバッグ記録 1.c コマンドで実行 C:\Apache2.2\htdocs\qmsPotalShip\for confirmation & modification>ruby -r debug myclassMySQLTest.rb Debug.rb Emacs support available. c:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb:10:require 'rubygems' (rdb:1) c c:/ruby/lib/ruby/1.8/rational.rb:78: `undefined method `gcd' for Rational(1, 2):Rational' (NoMethodError) from c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1123:in `require' from c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1123 from c:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb:10:in `require' from c:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb:10 c:/ruby/lib/ruby/1.8/rational.rb:78: gcd = num.gcd(den) (rdb:1) c Content-Type: text/html #<Mysql:0xa183008> 13 arcd chk_dist chkdb dist dmas 〜〜中略 データベース名・テーブル名の取得・データの取得を実施〜〜 〜テーブルの属性取得を実施〜 6 sendvarchar(50)YES 6 inditinyint(4)YES 6 tnotetextYES 6 snamevarchar(120)YES 6 statetinyint(4)YES 6 myclassMySQLTest.rb:96: [BUG] Segmentation fault ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 2.s コマンドで実行 c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:167: require 'rbconfig' (rdb:1) s c:/ruby/lib/ruby/1.8/i386-mswin32/rbconfig.rb:5:module Config (rdb:1) s c:/ruby/lib/ruby/1.8/i386-mswin32/rbconfig.rb:7: raise "ruby lib version (1.8.7) doesn't match executable version (#{ RUBY_VERSION})" (rdb:1) s c:/ruby/lib/ruby/1.8/i386-mswin32/rbconfig.rb:9: TOPDIR = File.dirname(__FILE__).chomp!("/lib/ruby/1.8/i386-mswin32") (rdb:1) s c:/ruby/lib/ruby/1.8/i386-mswin32/rbconfig.rb:10: DESTDIR = TOPDIR && TOPDIR[/\A[a-z]:/i] || '' unless defined? DESTDIR 了 |
|
|
[ruby-list:46258] MySQL/Ruby segmentation fault:ruby-list:46257関連前川です。
関連したエラーメッセージを、過去ログ ruby-dev:32939でみつけました。 gemによるインストールは、一切行ってないのですが、 `undefined method `gcd' for Rational(1, 2):Rational' (NoMethodError) という同じエラーメッセージが、記載されていました。 デバッガで、必ず通ると思われるポイントを設定したのですが、 エラーのあと、c を実行すると、ブレークポイントは、 スルーされてしまいました。 結果、エラーメッセージが出ました。 対処方法は、あるのでしょうか? =====ブレークポイント======= (rdb:1) b Breakpoints: 1 [myclassMySQLTest.rb:19] 2 [myclassMySQLTest.rb:32] 3 [myclass.rb:3] 4 [myclass.rb:39] 5 [myclass.rb:40] ==========実行=================== (rdb:1) c c:/ruby/lib/ruby/1.8/rational.rb:78: `undefined method `gcd' for Rational(1, 2):Rational' (NoMethodError) from c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1123:in `require' from c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1123 from c:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb:10:in `require' from c:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb:10 c:/ruby/lib/ruby/1.8/rational.rb:78: gcd = num.gcd(den) (rdb:1) c Content-Type: text/html #<=この部分が、最初に実行される部分 myclass.rb:3 のBP #<Mysql:0xa182734> 13 〜略〜 c:/ruby/lib/ruby/1.8/debug.rb:944: [BUG] Segmentation fault ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 了 |
|
|
[ruby-list:46260] Ruby デバッガ ブレークポイント設定について:ruby-list:46257 |
|
|
[ruby-list:46261] Re: Ruby デバッガ ブレークポイント設定について:ruby-list:46257 |
|
|
[ruby-list:46262] Re: Ruby デバッガ ブレークポイント設定について:ruby-list:46257 |
|
|
[ruby-list:46264] segmentation fault前川です。
Mysqlのデータアクセスを行うためのプログラムのデバッグを していますが、思うように出来ません。 Rubyのデバッガで、ブレークポイントを設定し、変数の内容を 確認しながら、実行すると、最後まで動きます。 しかし、プログラムを直接実行した場合、 また、デバッガで、bpなしでcコマンドで、実行すると、 segmentation fault が生じます。 対処方法について、ご教示ください。 segmentation faultが生じたときの、エラー原因の解析のための エラー情報の取得要領についても、ご教示願えませんでしょうか。 よろしくお願いします。 実行結果は、以下のとおりです。 111.デバッガで確認しながら実行した結果 〜前略〜 【テーブル情報】 #<Mysql:0x282dc94> 【テーブルフィールド】 〜〜中略〜〜 snotetextYES 6 urlvarchar(250)YES 6 xdwpathvarchar(200)YES 6 edatedatetimeYES C:\Apache2.2\htdocs\qmsPotalShip\confirmation> 222.直接実行した結果 Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\M118543>cd C:\Apache2.2\htdocs\qmsPotalShip\confirmation C:\Apache2.2\htdocs\qmsPotalShip\confirmation>myclassMySQLTest_c.rb #<Mysql:0x283c5a0> 13 〜略〜 【テーブル情報】 #<Mysql:0x282dc94> 【テーブルフィールド】 【DESCRIBE elist】 C:/Apache2.2/htdocs/qmsPotalShip/confirmation/myclassMySQLTest_c.rb:94: [BUG] Segmentation fault ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. C:\Apache2.2\htdocs\qmsPotalShip\confirmation> 333.デバッガを使うが、確認は一切なし。cコマンドのみで実行 C:\Apache2.2\htdocs\qmsPotalShip\confirmation>ruby -r debug myclassMySQLTest_c.rb Debug.rb Emacs support available. myclassMySQLTest_c.rb:7:require "mysql" #MySQLライブラリ (rdb:1) c #<Mysql:0x28dcf50> 13 〜略〜 データベースの一覧 information_schema emtest mysql ndesign test myclassMySQLTest_c.rb:60: [BUG] Segmentation fault ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 以上 |
|
|
[ruby-list:46265] クラスのメソッドについて前川です。
MySQL/Rubyのクラスを元に、自分なりの定義をしたのですが、 (NameError)とエラーとなりました。 私が想像している動作は、@@mydbを特定し、次の処理で、 @@mydb(Mysqlオブジェクト)のqueryを使用して、テーブルの属性を 取得する と考えたのですが・・ class MyClassDB def self.db_connect( srvname, usrname, password, dbname) @@mydb = Mysql.new(srvname, usrname, password,dbname) return @@mydb end def self.table_fields( table ) # テーブル情報を取得する @fields = @@mydb.query( "DESCRIBE #{table}" ) return @fields end end #MyClassDB 終了 mydb = MyClassDB.db_connect('localhost','root','dbkey','ndesign') res = MyclassDB.table_fields( 'elist') #<= myclass.rb:54 の行 myclass.rb:54: `uninitialized constant MyclassDB' (NameError) from myclass.rb:54 myclass.rb:54:res = MyclassDB.table_fields( 'elist') (rdb:1) よろしくお願いします。 了 |
|
|
[ruby-list:46266] Re: クラスのメソッドについてIn message <OF4DE8A936.13ABBBCD-ON4925760B.002C86FD-4925760B.002EBB74@...> 2009-08-07T17:30+0900,
前川 映一 <eiichi_maekawa@...> wrote: > mydb = MyClassDB.db_connect('localhost','root','dbkey','ndesign') > res = MyclassDB.table_fields( 'elist') #<= myclass.rb:54 の行 > > myclass.rb:54: `uninitialized constant MyclassDB' (NameError) 単純に大文字であるべきところが小文字になっているだけではないですか? -- 阪口哲男@図書館情報メディア研究科.大学院.筑波大学 Tetsuo SAKAGUCHI. Graduate School of Library, Information and Media Studies University of Tsukuba, JAPAN. |
|
|
[ruby-list:46267] Re: クラスのメソッドについて前川です。
坂口さん ありがとうございました。 穴があったら、入りたいです。大文字・小文字、半角・全角スペース まだまだ、未熟です。本当に、恥ずかしい限りです・・・・・ 46264で投げているsegmentation fault どなたか、教えていただけませんか?? Tetsuo Sakaguchi <saka@...> wrote on 2009/08/07 17:36:53: : > > mydb = MyClassDB.db_connect('localhost','root','dbkey','ndesign') > > res = MyclassDB.table_fields( 'elist') #<= myclass.rb:54 の行 > > > > myclass.rb:54: `uninitialized constant MyclassDB' (NameError) > 単純に大文字であるべきところが小文字になっているだけではないですか? > -- > 阪口哲男@図書館情報メディア研究科.大学院.筑波大学 |
|
|
[ruby-list:46281] rubyの変数の扱いについて前川です。
rubyは、script言語ということですが、 いまひとつ、理解できていません。 i = 0 while i < 5 if i == 0 a = 0 end a = a + i i += 1 end puts a では、正常に終了しますが、 i = 0 while i < 5 a = a + i i += 1 end puts a では、 undefined method `+' for nil:NilClass (NoMethodError) Complete(1) エラーとなります。 この違いは、i==0の条件で、a = 0 があるかないかですが、 変数aが実体化される場合の動作が、いまいち理解できていません。 よろしくお願いします。 了 |
|
|
[ruby-list:46282] Re: rubyの変数の扱いについて前川さん
高橋庸介といいます。 ずっとROMってて初登校です。 結論からすると i = 0 a = 0 while i < 5 a = a + i i += 1 end puts a が正解なのかもしれません。 > a = a + i としたときに最初にaがでてきて、aの中身がわからず(未定義状態)、+というメソッドがわからなく、メソッド未定義エラーになった。 上記は、最初に0と数値で初期化してあげて、これからaという変数は数値として使うよ、と宣言しただけです。 a=0 の一文だけ追加しましたが、これで if i == 0 a = 0 end があったときと同じ結果にはなっています。 2009/08/17 16:29 に 前川 映一<eiichi_maekawa@...> さんは書きました: > 前川です。 > > rubyは、script言語ということですが、 > いまひとつ、理解できていません。 > > i = 0 > while i < 5 > if i == 0 > a = 0 > end > a = a + i > i += 1 > end > puts a > > では、正常に終了しますが、 > > i = 0 > while i < 5 > a = a + i > i += 1 > end > puts a > > では、 > undefined method `+' for nil:NilClass (NoMethodError) > Complete(1) エラーとなります。 > > この違いは、i==0の条件で、a = 0 があるかないかですが、 > > 変数aが実体化される場合の動作が、いまいち理解できていません。 > よろしくお願いします。 > > > 了 > > > |
|
|
[ruby-list:46283] Re: rubyの変数の扱いについて植田と申します。
> 前川です。 ; > i = 0 > while i < 5 > a = a + i > i += 1 > end > puts a > > では、 > undefined method `+' for nil:NilClass (NoMethodError) > Complete(1) エラーとなります。 a が不定(nil) なので nil + 0 はできませんよ、と言ってます。 > この違いは、i==0の条件で、a = 0 があるかないかですが、 これは大きな違いですよね。『a = 0』なら a + 0 => 0 + 0 ですが、a を初期化していない状態では a + 0 => nil + 0 になります。 ※ ML に新たな内容を投稿するときは、他のメールへの返信ではなく新規にメー ルを送ってください。他のスレッドに紛れ込むと結果的に返事を貰いにくくなる と思います。 ----- 株式会社ネットフォレスト http://www.netforest.ad.jp/ Dr.Web/Vade Retro 担当 植田 裕之 ueda@... tel:045-663-6277 fax:045-663-6278 |
|
|
[ruby-list:46284] Re: rubyの変数の扱いについて前川です。
植田さん、高橋さん 早速の連絡、]ありがとうございます。 > a が不定(nil) なので > nil + 0 > はできませんよ、と言ってます。 なるほど、納得です。確かに。 C#では、このようなことを回避するために、 int a のような記述(aをintegerとして宣言する)ができたのですが、 このような記述は、rubyにもあると思いますが、では、難しいのでしょうか? また、string b ="" > > > この違いは、i==0の条件で、a = 0 があるかないかですが、 > これは大きな違いですよね。『a = 0』なら > a + 0 => 0 + 0 > ですが、a を初期化していない状態では > a + 0 => nil + 0 > になります。 > > ※ ML に新たな内容を投稿するときは、他のメールへの返信ではなく新規にメー > ルを送ってください。他のスレッドに紛れ込むと結果的に返事を貰いにくくなる > と思います。 > > ----- > 株式会社ネットフォレスト http://www.netforest.ad.jp/ > Dr.Web/Vade Retro 担当 植田 裕之 ueda@... > tel:045-663-6277 fax:045-663-6278 |
|
|
[ruby-list:46285] Re: rubyの変数の扱いについて前川です。
植田さん、高橋さん 早速の連絡ありがとうございます。 植田さん > a が不定(nil) なので > nil + 0 > はできませんよ、と言ってます。 高橋さん > > a = a + i > としたときに最初にaがでてきて、aの中身がわからず(未定義状態)、+という > メソッドがわからなく、メソッド未定義エラーになった。 なるほど、納得です。確かに。 C#では、このようなことを回避するために、 int a のような記述(aをintegerとして宣言する)ができたのですが、 このような記述は、rubyにもあると思いますが、どのように記述すればよいでしょ うか? また、string b ="" のような記述は出来ないのでしょうか? よろしくお願いします。 > ※ ML に新たな内容を投稿するときは、他のメールへの返信ではなく新規にメー > ルを送ってください。他のスレッドに紛れ込むと結果的に返事を貰いにくくなる > と思います。 注意します。早速ですが、[ruby-list:46284] は、間違って送信してしまいまし た。 申し訳ありません。 了 |
|
|
[ruby-list:46286] Re: [ruby-list:46284 ]_Re:_rubyの変数の扱いについて変数宣言は無いですね.
なぜなら a = "1" p a a = 1 p a をしてみてください. 型…とはRubyではいいませんが,変数の型それ自体が変化しているでしょう? Rubyでは変数にはどのようなインスタンスオブジェクトも代入可能です. 09/08/17 (月曜日) 05:00PM、 "前川 映一" <eiichi_maekawa@...>のメッセージ: >前川です。 >植田さん、高橋さん > >早速の連絡、]ありがとうございます。 > > >> a が不定(nil) なので > >> nil + 0 > >> はできませんよ、と言ってます。 > >なるほど、納得です。確かに。 >C#では、このようなことを回避するために、 > >int a のような記述(aをintegerとして宣言する)ができたのですが、 >このような記述は、rubyにもあると思いますが、では、難しいのでしょうか? > >また、string b ="" > >> >> > この違いは、i==0の条件で、a = 0 があるかないかですが、 > >> これは大きな違いですよね。『a = 0』なら > >> a + 0 => 0 + 0 > >> ですが、a を初期化していない状態では > >> a + 0 => nil + 0 > >> になります。 > >> >> ※ ML に新たな内容を投稿するときは、他のメールへの返信ではなく新規にメー >> ルを送ってください。他のスレッドに紛れ込むと結果的に返事を貰いにくくなる >> と思います。 > >> >> ----- >> 株式会社ネットフォレスト http://www.netforest.ad.jp/ >> Dr.Web/Vade Retro 担当 植田 裕之 ueda@... >> tel:045-663-6277 fax:045-663-6278 > > > > |
|
|
[ruby-list:46287] Re: rubyの変数の扱いについて植田です。
> 前川です。 ; > > a が不定(nil) なので > > > nil + 0 > > > はできませんよ、と言ってます。 > > なるほど、納得です。確かに。 > C#では、このようなことを回避するために、 > > int a のような記述(aをintegerとして宣言する)ができたのですが、 > このような記述は、rubyにもあると思いますが、では、難しいのでしょうか? C# は知りませんが、C でも int a; と書けても、これで a = a + 0; をすると値は不定になりますよね。 ------------------------------ ueda@ran[~ ]cat test.c #include <stdio.h> int main(void) { int a; a = a + 0; printf("%d\n", a); return 0; } ueda@ran[~ ]./test 134513520 ------------------------------ なので『変数の型を宣言する』と『変数の初期化をする』の話が混ざっている と思います。 > また、string b ="" のような記述は出来ないのでしょうか? 『変数 b は文字列クラスのインスタンスで、初期値は空』という記述であれ ば b = String.new('') で良いと思います。でも面倒なので私は b = '' と書いてしまいますけど。 ----- 株式会社ネットフォレスト http://www.netforest.ad.jp/ Dr.Web/Vade Retro 担当 植田 裕之 ueda@... tel:045-663-6277 fax:045-663-6278 |
|
|
[ruby-list:46288] Re: rubyの変数の扱いについて阪口と申します。途中からで失礼します。
(色々と識者からもフォローがあると思いますが。) In message <OFAA4C06FA.293AAD32-ON49257615.002B095C-49257615.002CA7FE@...> 2009-08-17T17:07+0900, 前川 映一 <eiichi_maekawa@...> wrote: > C#では、このようなことを回避するために、 > int a のような記述(aをintegerとして宣言する)ができたのですが、 > このような記述は、rubyにもあると思いますが、どのように記述すればよいでしょ > うか? > また、string b ="" のような記述は出来ないのでしょうか? その辺は「プログラミング言語設計上の理念」の違いですね。 C#のような言語は必要な変数は宣言してから使い、その際にどのデータ型かも 指定するという設計になっていますが、 Ruby は変数の宣言をするための専用の構文はない、という設計になっています。 その代わりに Ruby では「最初の代入文」が宣言を兼ねることになっています。 (これ、実は正確な表現ではないと思いますが、簡単に書いておきます。) また、変数は特定の型を持たないという設計にもなっています。 なので、「string b = ""」と書かずに「b = ""」と書けば良いわけですね。 蛇足ですが、プログラミング言語によって * 変数に型があるかないか * 変数宣言の要不要 * 変数の有効範囲の定め方(scope と extent) は様々です。一度調べてみると面白いかも知れません。 -- 阪口哲男@図書館情報メディア研究科.大学院.筑波大学 Tetsuo SAKAGUCHI. Graduate School of Library, Information and Media Studies University of Tsukuba, JAPAN. |
|
|
[ruby-list:46289] Re: [ruby-list:46284 ]_Re:_rubyの変数の扱いについて詫間さん ありがとうございました。
> 変数宣言は無いですね. > なぜなら > a = "1" > p a > a = 1 > p a > をしてみてください. たしかに、変化しますね。 ということは、aは、定まった型はなく、 入る初期値で、aの型は決まるということですね。 ありがとうございました。 |
|
|
[ruby-list:46290] Re: rubyの変数の扱いについて前川です。
植田さん、再々のご連絡ありがとうございます。 > C# は知りませんが、C でも > int a; > と書けても、これで > a = a + 0; > をすると値は不定になりますよね。 そうでした int a = 0; と記述しますね。 > ------------------------------ > ueda@ran[~ ]cat test.c > #include <stdio.h> > int main(void) { > int a; > a = a + 0; > printf("%d\n", a); > return 0; > } > ueda@ran[~ ]./test > 134513520 > ------------------------------ > なので『変数の型を宣言する』と『変数の初期化をする』の話が混ざっている > と思います。 確かに、そうです。型の宣言と、初期化を混ぜてます。。恥ずかしい限りです。 > > > また、string b ="" のような記述は出来ないのでしょうか? > 『変数 b は文字列クラスのインスタンスで、初期値は空』という記述であれ > ば > b = String.new('') > で良いと思います。でも面倒なので私は > b = '' > と書いてしまいますけど。 ありがとうございます。参考になりました。 |
| < Prev | 1 - 2 - 3 - 4 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |