برای اینکه بفهمیم کدوم خط برنامه سی/سیپلاسپلاس مون دچار خطا شده، میتونیم از gdb اسفاده کنیم.
به این صورت که موقع کامپایل، فلگ -g رو به g++/gcc پاس میدیم تا بدونه که باید اطلاعات دیباگ هم به فایل باینری اضافه کنه.
قدم بعدی، باز کردن برنامه با gdbست.
حالا وارد gdb میشیم که جعبه ابزار کاملی از امکاناته.
چیزای خوبی مثل watch و breakpoint رو توی این مرحله میتونیم اضافه کنیم ولی من اعتقادی بهشون ندارم.
بریم برای اجرا.
برای اجرا دستور run رو وارد میکنیم.
حالا برنامه اجرا میشه و اگه با مشکل رو به رو بشه، همراه با شماره خط، مینویسه که مشکل چی بود. (یعنی علت segmentation fault و موارد مشابه رو میفهمیم کدوم خط بوده)
حالا اگر برنامهمون ورودی میگرفت چی؟
اگر مستقیم از stdin بخوایم بگیره که میگیره. هیچی.
اما اگر بخوایم از یه فایل بخونه، میتونیم چنین چیزی بنویسم به جای run خالی:
اینطوری میاد و ورودی رو از فایل input.txt که واقع در پوشه هومه میخونه.
همینطوری بعد از ران میشه پارامتر به خود executableمون هم پاس بدیم. در مجموع run مثل نوشتن همون اسم executable توی ترمیناله.
به این صورت که موقع کامپایل، فلگ -g رو به g++/gcc پاس میدیم تا بدونه که باید اطلاعات دیباگ هم به فایل باینری اضافه کنه.
g++ -g code.c
قدم بعدی، باز کردن برنامه با gdbست.
gdb ./a.out
حالا وارد gdb میشیم که جعبه ابزار کاملی از امکاناته.
چیزای خوبی مثل watch و breakpoint رو توی این مرحله میتونیم اضافه کنیم ولی من اعتقادی بهشون ندارم.
بریم برای اجرا.
برای اجرا دستور run رو وارد میکنیم.
حالا برنامه اجرا میشه و اگه با مشکل رو به رو بشه، همراه با شماره خط، مینویسه که مشکل چی بود. (یعنی علت segmentation fault و موارد مشابه رو میفهمیم کدوم خط بوده)
حالا اگر برنامهمون ورودی میگرفت چی؟
اگر مستقیم از stdin بخوایم بگیره که میگیره. هیچی.
اما اگر بخوایم از یه فایل بخونه، میتونیم چنین چیزی بنویسم به جای run خالی:
(gdb) run < ~/input.txt
اینطوری میاد و ورودی رو از فایل input.txt که واقع در پوشه هومه میخونه.
همینطوری بعد از ران میشه پارامتر به خود executableمون هم پاس بدیم. در مجموع run مثل نوشتن همون اسم executable توی ترمیناله.
نوشتههای ترمینالی
برای اینکه بفهمیم کدوم خط برنامه سی/سیپلاسپلاس مون دچار خطا شده، میتونیم از gdb اسفاده کنیم. به این صورت که موقع کامپایل، فلگ -g رو به g++/gcc پاس میدیم تا بدونه که باید اطلاعات دیباگ هم به فایل باینری اضافه کنه. g++ -g code.c قدم بعدی، باز کردن برنامه…
توجه: اگر -g رو موقع کامپایل نزنیم، یا exeای بگیریم که از پیش کامپایل شده، دیگه اون اطلاعات بیشتر رو نداره ولی همچنان gdb قادره یه کارهای محدودی برامون انجام بده.
امروز با مفهوم lsp بیشتر آشنا شدم.
گویا قضیه از این قراره که دیدن توی vscode به راحتی میشه قابلیتهای ide توی یه زبان مشخص رو به ادیتور اضافه کرد.
ولی توی ویم چنین استانداردی نبوده که راحت باشه و برای هر زبان باید دردسرهای متفاوتی رو متحمل بشی.
اومدن از همون (؟) استانداردها استفاده کردن و یه پلاگین جامع نوشتن به اسم vim lsp
کارش هم اینه که هر زبونی بهش بگید رو میتونه براتون فیچرهای ideش رو نصب کنه.
مثلا توی یه فایل rs باشید و بزنید intall language server، برای شما قابلیتهای autotcomplete راسط رو نصب میکنه.
به همین ترتیب برای زبونهای دیگه.
https://github.com/prabirshrestha/vim-lsp
گویا قضیه از این قراره که دیدن توی vscode به راحتی میشه قابلیتهای ide توی یه زبان مشخص رو به ادیتور اضافه کرد.
ولی توی ویم چنین استانداردی نبوده که راحت باشه و برای هر زبان باید دردسرهای متفاوتی رو متحمل بشی.
اومدن از همون (؟) استانداردها استفاده کردن و یه پلاگین جامع نوشتن به اسم vim lsp
کارش هم اینه که هر زبونی بهش بگید رو میتونه براتون فیچرهای ideش رو نصب کنه.
مثلا توی یه فایل rs باشید و بزنید intall language server، برای شما قابلیتهای autotcomplete راسط رو نصب میکنه.
به همین ترتیب برای زبونهای دیگه.
https://github.com/prabirshrestha/vim-lsp
GitHub
GitHub - prabirshrestha/vim-lsp: async language server protocol plugin for vim and neovim
async language server protocol plugin for vim and neovim - prabirshrestha/vim-lsp
کار با git در ویم با fugitive
https://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/
https://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/
مشابه تابع toString جاوا، اکنون در گو
package mainhttps://stackoverflow.com/questions/13247644/tostring-function-in-go
import "fmt"
type bin int
func (b bin) String() string {
return fmt.Sprintf("%b", b)
}
func main() {
fmt.Println(bin(42))
}
Stack Overflow
ToString() function in Go
The strings.Join function takes slices of strings only:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
But it would be nice to be able to pass arbitrary objects which imple...
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
But it would be nice to be able to pass arbitrary objects which imple...
استفاده از replace در go mod
https://thewebivore.com/using-replace-in-go-mod-to-point-to-your-local-module/
https://thewebivore.com/using-replace-in-go-mod-to-point-to-your-local-module/
Pam The Webivore
Using "replace" in go.mod to point to your local module - Pam The Webivore
If you want to say, point to the local version of a dependency in Go rather than the one over… Read more > Using “replace” in go.mod to point to your local module
نوشتههای ترمینالی
How To Become A Hacker https://www.catb.org/~esr/faqs/hacker-howto.html
بخشی از مقاله:
competence at demanding skills that involve mental acuteness, craft, and concentration is best.
competence at demanding skills that involve mental acuteness, craft, and concentration is best.
Forwarded from Systems Artificial Intelligence Network (SAIN)
📣Call for Members:
Systems Artificial Intelligence Network (SAIN)
❇ Systems Artificial Intelligence Network (SAIN) is a network to promote an interdisciplinary perspective in the two fields of systems biology and artificial intelligence. This network is running under supervision of Prof. Nima Rezaie.
✳ SAIN is one of the USERN interest groups.
📃 Group definition:
https://t.iss.one/sain_usern/4
✅ We hereby invite all interested individuals to visit our form via the link below for obtaining more information about SAIN and registration:
Link
🔸️Registration deadline: February 1th
💻 USERN URL:
https://usern.tums.ac.ir/Group/Info/SAIN
📧Email: [email protected]
🆔️ @sain_usern | @usern_net
Systems Artificial Intelligence Network (SAIN)
❇ Systems Artificial Intelligence Network (SAIN) is a network to promote an interdisciplinary perspective in the two fields of systems biology and artificial intelligence. This network is running under supervision of Prof. Nima Rezaie.
✳ SAIN is one of the USERN interest groups.
📃 Group definition:
https://t.iss.one/sain_usern/4
✅ We hereby invite all interested individuals to visit our form via the link below for obtaining more information about SAIN and registration:
Link
🔸️Registration deadline: February 1th
💻 USERN URL:
https://usern.tums.ac.ir/Group/Info/SAIN
📧Email: [email protected]
🆔️ @sain_usern | @usern_net
چگونه هوشمندانه سوال بپرسیم.
https://catb.org/~esr/faqs/smart-questions.html
https://catb.org/~esr/faqs/smart-questions.html
خرید لپتاپ برنامهنویسی
https://vrgl.ir/ca8Ez
https://vrgl.ir/ca8Ez
ویرگول
لپ تاپ خوب برای برنامه نویسی
یه لپ تاپ خوب و شروع کد نویسی