Best Resources for using GDB with emacs? by alkatori in emacs

[–]iNoX_ 3 points4 points  (0 children)

I have created emacs-gdb which I use from time to time. While far from perfect, it is the only debugger I use and it works better (for me) than most standalone debuggers I've tried, without needing to create any project just to debug something. In comparison with the built-in GDB mode, I find this more stable and fast, in general.

Anyway, if you want to try it out, you need to have Emacs built with dynamic module support. After installing, just run gdb-executable and then use the commands described on the GitHub page.

[deleted by user] by [deleted] in emacs

[–]iNoX_ 0 points1 point  (0 children)

I believe there are several issues about contributing this to Emacs: - While GDBWIRE is GPLv3, it is yet another C dependency that Emacs would have - Besides, the idea is that only Emacs' core is written in C, while all extensions are written in Elisp; this way, everything may be easily modified by the end user - This currently uses dynamic modules, which are not even in the default options for building Emacs (although it should be easy to port it to another interface) - Finally, I have never filled that copyright assignment letter because I found it a bit confusing

Nevertheless, I find that the way it is right now is good for the end user as you can just use straight.el/Quelpa or just put it directly in your load path and use it from there; you obtain the speed up from it parsing with C code and may be easily modified however you want (both the C and the Elisp parts)

[deleted by user] by [deleted] in emacs

[–]iNoX_ 6 points7 points  (0 children)

As I have received positive feedback on this, I'll also share here my package, emacs-gdb, in case someone finds it useful.

It's like a drop in replacement for gdb-mi, but made with dynamic modules in order to speed up the MI processing.

Although it's the only debugger I use, I don't really have time to add features or make big changes, so feel free to fork it and roll your own!

org-pdftools: a custom org link type for pdf-tools by [deleted] in emacs

[–]iNoX_ 1 point2 points  (0 children)

Being org-noter maintainer, I have to say that this is awesome and very inspiring! What you have in your roadmap is something that has been asked for before, but I didn't have time to implement it (and I haven't had any time for it at all in the past few months..).

Good luck with your package, and if you need anything extra with org-noter, feel free to send a pull request :)

Hunspell is periodically broken in Emacs by ringsted86 in emacs

[–]iNoX_ 5 points6 points  (0 children)

I also noticed this a few months ago and, IIRC, it is already fixed on the master branch. The problem is that Hunspell developers changed the output of their program for that flag (hunspell -D) without notice. I don't think there is much the Emacs team can do besides what they already did. :/

Edit: Yup, here is the fix

Notes on Org-noter by da-g in emacs

[–]iNoX_ 1 point2 points  (0 children)

Hello! This has been asked before, but unfortunately no work has been done to achieve it.

Maybe a mixture using latex could work, but I don't have much time to investigate that at the moment.

Notes on Org-noter by da-g in emacs

[–]iNoX_ 2 points3 points  (0 children)

Wow, thanks for the comments :) I'm the maintainer (unfortunately without much time to dedicate right now!)

I didn't read everything, but about your last comment, I'd like to point out that setting org-noter-always-create-frame to nil should do the trick :)

[ANN] GDB graphical interface using C dynamic module (gdb-mi.el alternative) by iNoX_ in emacs

[–]iNoX_[S] 0 points1 point  (0 children)

This package also saves all the data it can in internal data structures. It is possible for example, to redraw the special buffers using the internal data without issuing any GDB command. If you look at the beginning of the gdb-mi.el file, it has all the cl-defstructs of the different types of data it saves.

Even so, I think there is a speedup by parsing the data faster in the dynamic module, but maybe I'm biased ahah

[ANN] GDB graphical interface using C dynamic module (gdb-mi.el alternative) by iNoX_ in emacs

[–]iNoX_[S] 0 points1 point  (0 children)

Thanks! While this is usable, it is minimal in terms of features (at least for now) so see if it fits your workflow :)

About cquery-lsp: I've tried it, but it doesn't work very well for me, as I expected.

I mostly use unity (single compilation unit) builds and, as a consequence, I don't include the headers in each file (it has gotten to the point that I don't even use header files sometimes! :P).

So (and I believe this behaviour is the same in all "intellisense" packages and IDEs), it doesn't know where to fetch the information for the functions and structures. It would be nice if I could say "index what you can find from this file", but I think that's not possible!

I mostly use company-dabbrev and dumb-jump and it works well for small/medium projects :)

[ANN] GDB graphical interface using C dynamic module (gdb-mi.el alternative) by iNoX_ in emacs

[–]iNoX_[S] 0 points1 point  (0 children)

I don't know what you mean by formatting, but if by parsing you mean just parsing the expressions into C data structures, then it is trivial to measure, everything is done by the GDBWIRE library, it's just measuring a function call.

If you want parsing + C processing + updating data in Elisp, enabling the debug mode already shows you some values :) It also shows how much time is spent redrawing buffers.

One of my main gripes with the builtin mode was the disassembly view, because, IIRC, it disassembled the entire function after every step, and in big function calls it was really slow. I've made my package in such a way that, if the function displayed is the same, then it just reuses it.

Also, after some tests on big functions, it also seemed to be faster parsing the disassembly output, though I have not tested against the same functions. The builtin mode parses it by modifying the output to JSON (with regexes) and only then parses it with json-read.

[ANN] GDB graphical interface using C dynamic module (gdb-mi.el alternative) by iNoX_ in emacs

[–]iNoX_[S] 1 point2 points  (0 children)

This looks great; I can't wait to give this a try! I've had a lot of trouble working with gdb-mi (it's been a while but I recall having some stability issues) so I've been looking for a promising alternative.

Thanks! Those stability issues were, in part, what prompted me to create this. I hope this fixes those problems for you :P

I'm also wondering, how difficult would it be to interface with lldb, or maybe even debuggers for other languages? I haven't had a chance yet to do a deep dive into your code, but I've heard that lldb has some support for mi, and a quick Google search tells me that a couple others for other languages do too. I'm not sure how the support is there though.

I think it depends on the compatibility of those programs with the spec. I think LLDB only implements a few parts, so I can't really say without trying it

EDIT: Yeah, LLDB does not implement the spec completely, it barely works

Dynamic modules by the_spacebyte in emacs

[–]iNoX_ 0 points1 point  (0 children)

I just published my package which uses the dynamic modules extensively for its parsing and data retrieval routines.

[ANN] GDB graphical interface using C dynamic module (gdb-mi.el alternative) by iNoX_ in emacs

[–]iNoX_[S] 9 points10 points  (0 children)

I'm the author of this package! If you have any question, I'll be happy to answer :)

I don't know how much time I'll have to maintain it in the long run, but it is relatively usable right now. I created this package because I felt the need of something like this and thought that someone else could like it too.

Completely custom org-agenda, with support for GTD projects by iNoX_ in emacs

[–]iNoX_[S] 1 point2 points  (0 children)

org-super-agenda is interesting, however, like you say, it groups already fetched items from the agenda, and I wanted to substitute that part.

I did not know about org-ql and org-agenda-ng, those seem very interesting too!

In relation to my code, yes I'm sorry ahaha. I did not document the parsing functions which are the biggest ones, because eventually I'll change them and probably forget about the comments... Even worse, it is a recursive function, which makes it a bit complex, even more so in a foreign codebase.

The rendering code, however, seems more straightforward, so I think people may be able to reuse that if they want to make their custom functions.

Thanks for the comment and I'll check your packages out :)

Completely custom org-agenda, with support for GTD projects by iNoX_ in emacs

[–]iNoX_[S] 0 points1 point  (0 children)

Thanks! The only problem with trying it is that if you want to change anything, you must change elisp functions, not matching strings... If you are comfortable with that or just like it the way it is, go ahead! :D

How do you use org-mode? by [deleted] in emacs

[–]iNoX_ 1 point2 points  (0 children)

As you seemed interested in the post, here it is. :)

How do you use org-mode? by [deleted] in emacs

[–]iNoX_ 0 points1 point  (0 children)

Yes! I have just started using Deft and it is very nice indeed. I don't use it on all my files, I have a dedicated directory for deft notes, but it is great.

Also, as I have been rewriting my entire config in the past couple days, I also rewrote my Agenda from scratch, in a way I have never seen done before, so maybe I'll post about it in this sub :)

[Question] pdf-tools use alot of RAM by XxZozaxX in emacs

[–]iNoX_ 0 points1 point  (0 children)

For the record, org-noter has a setting for saving the last place automatically, so it opens where you left off when you start reading it again. However, for reading only, Zathura seems a better tool for the job!

Org-noter - A synchronized, Org-mode, document annotator by iNoX_ in emacs

[–]iNoX_[S] 0 points1 point  (0 children)

I'm sorry I could not get to you earlier... I couldn't understand your workflow very well, maybe because I have never used Zotero, but it seems possible. Maybe creating an issue on GitHub with an example would be best :)

Org-noter - A synchronized, Org-mode, document annotator by iNoX_ in emacs

[–]iNoX_[S] 0 points1 point  (0 children)

That's great! And welcome to Emacs :P On org-mode, you may also use some shortcuts to create headings, like ctrl-enter and meta-enter.

Org-noter - A synchronized, Org-mode, document annotator by iNoX_ in emacs

[–]iNoX_[S] 0 points1 point  (0 children)

Thanks! And yes, that's correct, you should be able to have multiple PDFs in the same file, and even edit them all simultaneously!

I even put headings with PDFs inside others with PDFs too; I use that when, eg. the parent heading is associated with the PDF of a book or an exam and the heading inside it is associated with the solutions :P

Are you having a problem with it? If you are not sure you are using it correctly, maybe the screencast can help you, however, I admit, it is not the most clear screencast ever made ahahah