Open remenor opened 5 years ago
$ gdb metadsf
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from metadsf...
(gdb) b deleteFrames
Breakpoint 1 at 0xae10: deleteFrames. (3 locations)
(gdb) r --remove-everything test.dsf
Starting program: /media/buf/zvezdochiot/dists/git/ORGS/ORG.SLM/metadsf-all/metadsf-t/src/metadsf --remove-everything test.dsf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Breakpoint 1, MetaDSF::MetaDSFImpl::deleteFrames (l=..., this=0x55555558ee50) at metadsf.cpp:459
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
460 _file.ID3v2Tag()->removeFrame(*it);
(gdb) n
459 for (it = l.begin(); it != l.end(); it++) {
(gdb) n
MetaDSF::MetaDSFImpl::deleteTags (this=0x55555558ee50, key=...) at metadsf.cpp:487
487 _changed = true;
(gdb) n
404 size_t _M_get_size() const { return _M_impl._M_node._M_size; }
(gdb) n
Program received signal SIGSEGV, Segmentation fault.
0x0000555555572010 in ?? ()
(gdb) q
I was able to compile in Debian 10 but there are some faults when trying to delete tags:
--remove-everything does not remove tags
$ metadsf --remove-everything 01\ -\ Jeff\ Beck\ -\ Led\ Boots.dsf segment violation
--set-tag or -s does not replace the tags but adds another of the same typemetadsf -t 01\ -\ Jeff\ Beck\ -\ Led\ Boots.dsf TIT2=Led Boots TPE1=Jeff Beck TALB=Wired TCON=Pop TDRC=2015-16-08 TDAT= TRCK=1
metadsf -sTIT2=New --id3v2-version=3 01\ -\ Jeff\ Beck\ -\ Led\ Boots.dsf metadsf -t 01\ -\ Jeff\ Beck\ -\ Led\ Boots.dsf TIT2=Led Boots TPE1=Jeff Beck TALB=Wired TCON=Pop TRCK=1 TIT2=New TDRC=2015-16-08 TDAT=
Delete and add the tags individually works perfectly